HTTP的报文结构

请求报文结构如下表,如下:

报文首部空行(CR+LF)报文主体
请求行(包含方法、URI、HTTP版本)
请求首部字段(补充请求的附加内、客户端信息、响应内容相关优先级等)
通用首部字段(请求、响应报文都会使用的首部)
实体首部字段(补充资源内容,更新时间和实体相关的信息)
其他

响应报文结构如下表,如下:

报文首部空行(CR+LF)报文主体
状态行(包含HTTP版本、状态码)
响应首部字段(补充响应的附加内容,也会要求客户端添加额外的内容信息)
通用首部字段(请求、响应报文都会使用的首部)
实体首部字段(补充资源内容,更新时间和实体相关的信息)
其他

通用首部字段列表

通用首部字段名说明
Cache-Control控制缓存的行为
Connection控制不在转发给代理的首部字段、管理持久链接
Date创建报文的日期和时间
Pragma仅作为HTTP/1.0的向后兼容被定义
Trailer报文主体后加的首部字段 ,可用在分块编码时
Transfer-Encoding指定报文主体的传输编码格式
Upgrade检测协议是否可使用更高版本,(在使用该字段时要额外添加 Connection:Upgrade字段)
Via追踪客户端和服务器之前请求和响应的传输路径,(所有代理服务器的信息)
Warning各种错误警告

请求首部字段列表

请求首部字段名说明
Accept通知服务器用户代理可处理的媒体类型以及优先级
Accept-Charset通知服务器用户代理支持的字符集以及字符集的优先顺序
Accept-Encoding告知服务器用户代理支持的内容编码以及内容编码的优先顺序
Accept-Language告知服务器用户代理能够处理的自然语言以及自然语言的优先级
Authorization用来告知服务器用户代理的认证信息
Expet期待服务器出现某种待定行为
From告知服务器用户代理的电子邮箱地址
Host请求资源所处计算机的主机名和端口号
If-Match告知服务器匹配资源所用的实体标记值
If-Modified-Since告知服务器字段值时间之后有更新资源,则获取
If-None-Match和If-Match相反
If-Range资源未更新时发送实体Bety的范围请求
If-Unmodified-Since告知服务器字段之间之后未更新资源,则获取
Max-Forwards以十进制的形式指定可经过的服务器的最大数目
Proxy-Authorization代理服务器要求客户端的认证信息
Pange只需要获取部分资源的请求告知服务器的资源指定范围
Referer告知服务器请求的原始资源的URI
TE告知服务器客户端能处理的编码格式以及相对优先级
User-AgentHttp客户端的信息,如果请求经过代理也可能会添加代理服务器的信息

注:形如If-xxx这样的请求字段称为条件请求,服务器一般接收到附带条件请求的URL,只有判断条件成立后才会执行请求


响应字段首部

响应首部字段名说明
Accept-Range用来告知客户端服务器是否能处理范围请求,可以指定为betys,反之指定为none
Age返回资源创建到这次请求所经过的时间,单位为s
ETage服务器将资源以字符串的形式作唯一标识ETage
Location告知服务器用户代理能够处理的自然语言以及自然语言的优先级
Authorization用来告知服务器用户代理的认证信息(属客户端与代理之间的通信)
Retry-After告知客户端多久之后再次访问
Server告知客户端当前服务器安装的HTTP服务器应用程序的信息
Vary代理服务器需要缓存的管理信息
WWW-Authenticate服务器对对客户端的认证信息

实体首部字段

实体首部字段名说明
Allow通知客户端能支持的HTTP的所有方法
Content-Encoding通知客户端服务器对实体的主体的编码方式
Content-Language通知客户端实体主体的自然语言
Content-Length实体主体的大小
Content-Location表示报文返回资源的原始URI
Content-MD5客户端对接收到的报文主体执行相同的MD5算法,然后与字段中的值进行比较。(目的检测传输过程实体主体是否保持完整)
Content-Range实体主体返回的是资源的那部分位置范围
Content-Type实体主体的媒体类型
Expires告知客户端资源的有效截止日期
Last-Modified告知客户端资源的最后修改日期

版权声明:本文为qq_29679397原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。