1.3 HTTP报文
1.3.4 首部
首部和方法配合工作,共同决定了客户端和服务器能做什么事情。
五种主要类型:通用首部,请求首部,响应首部,实体首部,扩展首部
1.3.4.1通用首部
请求和响应都会用到的首部
首部 | 描述 |
---|---|
Connection | 指定与请求/响应连接有关的选项 |
Date | 报文何时创建 |
MIME-Version | MIME版本 |
Trailer | 使用分块传输编码时列出报文拖挂部分让你的首部集合 |
Transfer-Encoding | 告知接收端为了保证报文的可靠传输,要对报文采用什么编码方式 |
Update | 发送端可能想要升级使用的新协议版本 |
Via | 显示报文经过的中间节点(代理,网关) |
Cache-Control | 随报文传送缓存指示 |
1.3.4.2请求首部
说明谁或什么在发送请求,请求源自何处,客户端喜好及能力
- 请求的信息性首部:
首部 | 描述 |
---|---|
Client-IP | 客户端的IP地址 |
From | 客户端的E-mail地址 |
Host | 接受请求的服务器的主机名和端口号 |
Referer | 提供了包含当前请求URI的文档的URL |
UA-Color | 显示器颜色 |
UA-CPU | CPU类型或制造商 |
UA-Disp | 显示器能力相关的信息 |
UA-OS | 操作系统名称版本 |
UA-Pixels | 像素信息 |
User-Agent | 将发起请求的应用程序名称告知服务器 |
- Accept首部
Accept是客户端告诉服务器其喜好和能力的首部,它们包括想要什么,可以使用什么,什么做重要,不想要什么,这样服务器就可以根据提供的信息做出更明智的响应。
首部 | 描述 |
---|---|
Accept | 告诉服务器能够发送哪些媒体类型 |
Accept-Charset | 告诉服务器能够发送哪些字符集 |
Accept-Language | 告诉服务器能够发送哪些语言 |
Accept-Encoding | 告诉服务器能够发送哪些编码方式 |
TE | 告诉服务器能够使用哪些扩展传输编码 |
- 条件请求首部
有时候客户端想为请求加上某些限制,要求服务器在对请求进行响应时,确保某个条件为真
首部 | 描述 |
---|---|
Expect | 允许客户端列出某请求所要求的服务器行为(如100Continue) |
If-Match | 如果实体标记与当前实体标记相匹配,就获取这份文档 |
If-None-Match | 如果实体标记与当前实体标记不匹配,就获取这份文档 |
If-Modified-Since | 在这个自定的日期之后修改过,就发送,否则就限制这个情求 |
If-Unmodified-Since | 在这个自定的日期之后没有修改过,就发送,否则就限制这个情求 |
If-Range | 对文档的某个范围进行条件请求 |
Range | 如果服务器支持范围请求,就请求资源的指定范围 |
- 安全请求首部
对请求进行质询/响应认证的时候要求客户端在获取特定资源之前,先对自身进行认证,这样就可以让事务稍微安全一些
首部 | 描述 |
---|---|
Authorization | 包含了客户端提供给客户端,以便对其自身进行认证的数据 |
Cookie | 客户端用它向服务器传送了一个令牌(它不是真正的安全首部但确实隐含安全功能) |
Cookie2 | 用来说明cookie版本 |
- 代理请求首部
首部 | 描述 |
---|---|
Max-Forward | 在传到服务器端时允许转发的最大次数 |
Proxy-Authorization | 与Authorization首部同,代理认证时使用 |
Proxy-Connection | 与Connection首部同,代理认证时使用 |
1.3.4.3响应首部
为客户端提供额外信息,如谁发送响应,响应者的功能,甚至响应相关的一些特殊指令
- 响应的信息性首部:
首部 | 描述 |
---|---|
Age | 从最初创建开始响应持续时间 |
Public | 服务器为其资源支持的请求方法列表 |
Retry-After | 如果资源不可以,在此日期或时间重试 |
Server | 服务器应用程序名称,版本 |
Title | HTML文档的源端给出的标题 |
Warning | 比原因端语中更详细的警告报文 |
- 协商首部
传递可协商资源有关的信息
首部 | 描述 |
---|---|
Accept-Ranges | 对于此资源来说,服务器可接受的范围类型 |
Vary | 首部列表,服务器会根据这些首部的内容挑选出最合适的资源版本发给客户端 |
- 安全响应首部
HTTP质询/响应认证机制的响应侧
首部 | 描述 |
---|---|
Proxy-Authenticate | 来代理的对客户端的质询列表 |
Set-Cookie | 不是是真正的安全首部,但隐含有安全功能,可以在客户端设置一个令牌,以便服务器对科幻段进行标识 |
WWW-Authenticate | 来自i服务器对客户端的质询列表 |
1.3.4.4实体首部
描述HTTP报文的负荷信息。告知报文接收者它在对什么进行处理
- 实体的信息性首部:
首部 | 描述 |
---|---|
Allow | 列出了可以对此尸体执行的请求方法 |
Location | 告知客户端实体实际上处于何处,常用于重定向 |
- 内容首部
提供了与实体内容有关的特定信息
首部 | 描述 |
---|---|
Content-Base | 解析主体中的相对URL时使用的基础URL |
Content-Encoding | 对主体执行的任意编码方式 |
Content-Language | 理解主体时最适合使用的自然语言 |
Content-Length | 主体长度 |
Content-Location | 资源实际所处的位置 |
Content-MD5 | 主体的MD5校验和 |
Content-Range | 在整个资源中此实体标识的字节范围 |
Content-Type | 这个主体的对象类型 |
- 实体缓存首部
通用的缓存首部说明了如何或什么时候进行缓存。实体的缓存首部提供了与被缓存实体有关的信息
首部 | 描述 |
---|---|
ETag | 与此实体相关的实体标记 |
Expires | 实体失效,要从源端获取该实体的日期和时间 |
Last-Modified | 这个实体在后一次被修改的时间 |
1.3.5 主体
主体部分是可选的。实体的主体是HTTP好文的负荷,就是HTTP要传输的内容