http报文包括起始行、首部和主体。html
HTTP请求/响应起始行算法
请求组成: 方法 + 请求URL + HTTP版本浏览器
响应组成: HTTP版本 + 数字状态码 + 描述状态的缘由短语缓存
HTTP首部服务器
首部内容为客户端和服务器分别处理请求和响应提供所须要的信息。首部和方法配合工做,共同决定了客户端和服务器能作什么。cookie
通用首部函数
客户端和服务器均可以使用的首部编码
首部url |
描述spa |
值 |
Connection |
是否须要持久链接 |
Keep-alive |
Cache- Control |
缓存控制 |
private:内容只缓存到私有缓存中(仅客户端); public:全部内容都将被缓存(客户端和代理服务器均可缓存); max-age= 25 :缓存将在25s后失效,须要从新访问服务器; no-cache:必须先与服务器确认返回的响应是否被更改,而后才能使用该响应来知足后续对同一个网址的请求,验证ETag; no-store:响应不被缓存; must-revalidation/proxy-revalidation:若是缓存的内容失效,请求必须发送到服务器/代理以进行从新验证 |
Data |
首部字段data代表建立HTTP报文和日期。 |
|
Via |
追踪客户端与服务器之间的请求响应和响应报文的传输途径。还能够避免请求回环的发生。 |
|
Warning |
告知用户一些与缓存相关问题的警告 |
|
Transfer- Encoding: |
规定了传输报文主体时采用的编码方式 |
|
请求首部中经常使用字段详解
首部 |
描述 |
值 |
Accept |
客户端支持的媒体类型 |
"text/html,iamge/*" |
Accept-Encoding |
客户端支持的编码方式 |
"gzip, compress" |
Accept-Charset |
客户端支持的/字符集 |
"iso8859-5" |
Accept-Language |
客户端支持的语言 |
"en, fr" |
Except |
|
|
If - Modified - Since |
浏览器缓存页面的最后修改时间,服务器会将该时间与服务器时间对比,若是超出该时间则返回新内容,不然返回304 |
Time |
Range |
若是服务器支持请求的范围,则返回资源的指定范围 |
Range |
Content - Length |
请求消息正文的长度 |
|
Referer |
包含一个URL,用户从该URL表明的页面出发访问当前请求的页面 |
url |
User - Agent |
浏览器类型 |
|
Trailer |
首部字段Trailer会事先说明在报文主体后记录了哪些首部字段,能够应用在HTTP1.1版本分块传输编码时使用。 |
|
响应首部中经常使用字段详解
首部 |
描述 |
值 |
Accecpt-Ranges "none" |
服务器可接受的范围和类型 |
|
Age |
从原始服务器到代理缓存造成的估算时间(以秒记, 非负) |
|
ETag |
设置文件是否被修改 |
|
Last-Modified |
请求资源的最后修改时间 |
|
Serve |
服务器应用程序的名称 |
|
Set-cookie |
设置cookie |
|
Proxy-Authenticate |
代理对客户端的质询列表 |
Basic |
实体首部中经常使用字段详解
首部 |
描述 |
值 |
Content-encoding |
主体编码方式 |
|
Content-Language |
主体语言 |
|
Content-Length |
主体长度 |
|
Content-MD5 |
主体MD5校验和 |
|
Content-Range |
在整个资源中,实体表示的字节范围 |
|
Content-type |
主体对象类型 |
|
MD5:一种散列函数,用以提供消息的完整性保护。MD5即Message-Digest Algorithm 5(信息摘要算法5),是计算机普遍使用的散列算法之一(又译摘要算法、哈希算法)。对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。用于确保信息传输完整一致。