RFC — Request For Comments
请求报文
请求报文包括:请求行、请求首部、请求实体
一、请求行 (GET /test/index.html HTTP/1.1)
请求方法(get、post、put、delete、head、trace、options)
请求地址(/test/index.html)
请求报文使用的Http协议版本
二、请求首部
请求首部具体内容见下方“首部详解”
三、请求实体
响应报文
响应报文包括:响应行、响应首部、响应实体
一、响应行 (HTTP/1.1 200 OK)
响应报文使用的Http协议版本
数字状态码
原因短语
二、响应首部
响应首部具体内容见下方“首部详解”
三、响应实体
Http请求方法详解
- Get
- Post
- Put
- Delete
- Head
- Trace
- Options
Http响应码详解
100~199 信息性状态码
200~200 成功状态码
300~399 重定向状态码
400~499 客户端错误状态码
500~599 服务器错误状态码
首部
通用首部
Connection
指定请求和响应链接类型
Connection: keep-alive(持久链接) 或者 close
Http1.1默认开启Keep-alive
对同一地址的请求会复用缓存的链接
避免建立、断开连接时的开销,更高效
Date
提供日期和时间标志,说明报文创建时间
Date: Thu, 07 Jul 2016 10:04:08 GMT
MIME-Version
指定发送端使用的MIME版本
MIME 多用途互联网邮件扩展协议
扩展了电子邮件协议
在万维网中支持 非ASCLL码字符文本、非文本格式附件、由多部分组成的消息体、包含由非ASCLL码组成的头部信息
Trailer 拖挂
指定了分块传输方式中,在分块的报文最后加上的拖挂首部。
例:如果Trailer: Content-MD5,即服务器返回的分块数据的最后添加一个Content-MD5:”asdasdasd”的数据。
Transfer-Encoding
报文传输编码方式
Update
给出了发送端想要“升级”使用的新版本或协议
Via
显示了报文经过的中间节点
Upgrade
向服务器指定某种传输协议以便服务器进行转换。HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 ,websocket
通用缓存首部
Cache-Control
用于随报文传送缓存指示
请求首部
1、请求的信息性首部
Client-Ip 客户端机器的IP地址
From 客户端用户的E-mail地址
Host 接收请求的服务器的主机名和端口号
Referer 包含当前请求URI的文档的URL
UA-Color 客户端显示器显示颜色有关的信息
UA-CPU 客户端CPU的类型或制造商
UA-Disp 客户端显示器能力有关的信息
UA-OS 客户端机器上的操作系统名称及版本
UA-Pixels 客户端显示器的像素信息
User-Agent 将发起请求的应用程序名称告知服务器
2、Accept首部
Accept 客户端所支持的媒体类型
Accept-Charset 客户端支持的字符集
Accept-Encoding 客户端支持的编码方式
Accept-Language 客户端支持的语言
TE 客户端支持的扩展传输编码
3、条件请求首部
Except 允许客户端列出某请求所要求的服务器行为
If-Match 如果实体标记与文档当前的实体标记相匹配,就获取这份文当
If-Modified-Since 如果某个指定的日期之后资源被修改过,就响应这个请求
If-None-Match 如果实体标记不符,就获取这份文档
If-Range 允许对某个文档的某个范围进行条件请求
If-Unmodified-Since 如果在某个指定日期之后资源没有被修改过,就响应这个请求
Range 如果服务器支持范围请求,就请求资源的指定范围
4、安全请求首部
Authorization 包含了客户端提供给服务器,以便对其自身进行认证的数据
Cookie 客户端用它向服务器传送一个令牌
Cookies2 说明请求端支持的Cookie版本
5、代理请求首部
Max-Forward 在通往源端服务器的路径上,将请求转发给其他代理或网关的最大次数(与Trace方法一同使用)
Proxy-Authorization 与Authorization首部相同,与代理进行认证时使用
Proxy-Connection 与Connection首部相同,与代理建立连接时使用
响应首部
1、响应的信息性首部
Age (从最初创建开始)响应持续时间
Public 服务器为其资源支持的请求方法列表
Retry-After 如果资源不可用的话,在此日期和时间重试
Server 服务器应用程序软件的名称和版本
Title 对于HTML文档来说,就是HTML文档的源端给出的标题
Warning 比原因短语更详细的警告报文
2、协商首部
Accept-Range 对此资源来说,服务器可接受的范围类型
Vary 服务器查看的其他首部的列表,可能会使响应发生变化,也就是说,这是一个首部列表,服务器会根据这些首部的内容挑选出最适合的资源版本发送给客户端
3、安全响应首部
Proxy-Authorization 来自代理的对客户端的质询列表
Set-Cookie 不是真正的安全首部,但隐含有安全功能,可以在客户端设置一个令牌,以便服务器对客户端进行标示
Set-Cookie2 与Set-Cookie类似,RFC2965定义
WWW-Authorization 来自服务器的对客户端的质询列表
实体首部
1、实体的信息性首部
Allow 列出了可以对此实体执行的请求方法
Location 告知客户端实体实际上位于何处,用于将接收端定向到资源的(可能是新的)位置(URL)上去
2、内容首部
Content-Base 解析主体中的相对URL时所使用的基础URL
Content-Encoding 对主体执行的任意编码方式
Content-Language 理解主体时最适宜使用的自然语言
Content-Length 主体的长度或尺寸
Content-Location 资源实际所处的位置
Content-MD5 主体的MD5校验和
Content-Range 在整个资源中此实体表示的字节范围
Content-Type 这个主体的对象类型
3、实体缓存首部
ETag 与此实体相关的实体标记
Expires 实体不再有效,要从原始的源端再次获取此实体的日期和时间
Last-Modified 这个实体最后一次被修改的日期和时间
扩展首部