1 HTTP发展史
1.1HTTP概念
超文本传输协议(HTTP HyperText TransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
HTTP协议和TCP/IP协议族内的其他众多的协议相同,用于客户端和服务器之间的通信。
1.2HTTP发展史

2 HTTP协议结构
2.1 HTTP通信过程
2.2 HTTP报文
用于HTTP协议交互的信息被称为HTTP报文,请求端的HTTP报文叫做请求报文,响应端的叫做响应报文。HTTP报文是由多行(CR+LF作换行符)数据构成的字符串文本。

2.2 请求报文及响应报文的结构

2.3 HTTP请求报文

2.4 HTTP方法
- GET:请求访问已被URI识别的资源
- POST:传输实体的主体
- PUT:传输文件
- HEAD:HEAD方法和GET方法一样,只是不返回报文主体部分。用于确认UR的有效性及资源更新的日期时间等。
- DELETE:删除文件
- OPTIONS:查询针对请求URI指定的资源支持的方法
- TRACE:让Web服务器端将之前的请求通信环回给客户端
2.5 HTTP响应报文

2.6 HTTP状态码
- 1XX
信息性状态码,接收的请求正在处理 - 2XX
成功状态码,请求正常处理完毕 - 3XX
重定向状态码,需要进行附加操作以完成请求 - 4XX
客户端错误状态码,服务器无法处理请求 - 5XX
服务器错误状态码,服务器处理请求出错

2.7 HTTP是无状态协议
为了实现保存状态的功能,引入了cookie技术。
3 HTTP首部字段
3.1 HTTP首部字段
- 通用首部字段
请求报文和响应报文两方都会使用的首部。 - 请求首部字段
从客户端向服务器端发送请求报文时使用的首部,补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。 - 响应首部字段
从服务器端向客户端返回响应报文时使用的首部,补充了响应的附加内容,也会要求客户端附加额外的内容信息。 - 实体首部字段
针对请求报文和响应报文的实体部分使用的首部,补充了资源内容更新时间等与实体有关的信息。
3.2 通用首部字段
- Cache-Control
通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制; - Connection
控制不再转发给代理的首部字段;管理持久连接 - Date
表明创建HTTP报文的日期和时间 - Via
使用首部字段Via是为了追踪客户端与服务器之间的请求和响应报文的传输路径。报文经过代理或网关时,会先在首部字段Via中附加该服务器的信息,然后再进行转发。首字段Via不仅用于追踪报文的转发,还可避免请求回环的发生,所以必须在经过代理时附加该首部字段内容。
3.3 请求首部字段



3.4 响应首部字段


3.4 实体首部字段


4 CTF常见姿势
Method

User-Agent

Location

Referer

X-Forwarded-For

Accept-Language


Cookie

自定义首部字段
