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-Agent Http客户端的信息,如果请求经过代理也可能会添加代理服务器的信息

注:形如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 告知客户端资源的最后修改日期

你可能感兴趣的:(HTTP的报文结构)