HTTP消息头详解
http消息头文档:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers
分类:4类
通用头域 General headers 同时适用于请求和响应消息,但与最终消息主体中传输的数据无关的消息头。
请求头域 Request headers 包含更多有关要获取的资源或客户端本身信息的消息头。
响应头域 Response headers 包含有关响应的补充信息,如其位置或服务器本身(名称和版本等)的消息头。
实体头域 Entity headers 包含有关实体主体的更多信息,比如主体长(Content-Length)度或其MIME类型。
1. 请求头
Host: developer.mozilla.org
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://developer.mozilla.org/testpage.html
Upgrade-Insecure-Requests:1
Connection: keep-alive
If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT 服务器只在所请求的资源在给定的日期时间之后对内容进行过修改的情况下才会将资源返回,否则返回304
If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"
Cache-Control: max-age=0
2. 响应头
Access-Control-Allow-Origin: *
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Mon, 18 Jul 2016 16:06:00 GMT
Etag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"
Keep-Alive: timeout=5, max=997
Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT 服务器认定的资源做出修改的日期及时间,响应给浏览器。浏览器下次请求时,它是If-Modified-Since的值
Server: Apache
Set-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secure
Transfer-Encoding: chunked
Vary: Cookie, Accept-Encoding
X-Backend-Server: developer2.webapp.scl3.mozilla.com
X-Cache-Info: not cacheable; meta data too large
X-kuma-revision: 1085259
x-frame-options: DENY
Expires: Wed, 21 Oct 2015 07:28:00 GMT 响应头包含日期/时间, 即在此时候之后,响应过期。若设置了cache-control:max-age则它失效
3. 通用头
Via: HTTP/1.1 GWA 是由代理服务器添加的,适用于正向和反向代理。可以用来追踪消息转发情况,防止循环请求,以及识别在请求或响应传递链中消息发送者对于协议的支持能力
Content-Length:300 实体内容的字节数,浏览器或服务器根据内容自动给定
Content-Language:de,en 表示文档是给哪国人看的,并不是一定就这种语言
Content-Encoding:gzip, deflate,br 用于对特定媒体类型的数据进行压缩,值表示消息主体的编码方式。identity表示未经压缩
4. 实体头
Date:Wed, 21 Oct 2015 07:28:00 GMT
Cache-Control: no-cache 强制确认缓存
a. 缓存请求指令:
Cache-Control: max-age=<seconds>
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: only-if-cached
b. 缓存响应指令:
Cache-control: must-revalidate
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: public
Cache-control: private
Cache-control: proxy-revalidate
Cache-Control: max-age=<seconds>
Cache-control: s-maxage=<seconds>
Connection: keep-alive 启用长连接