图解HTTP--第六章--http首部

6.1 http报文首部

  HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。

  • HTTP请求报文:在请求中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分构成。
  • HTTP响应报文:在响应中,HTTP报文由HTTP版本、状态码、HTTP首部字段3部分构成。

6.2 http首部字段

  使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。HTTP首部字段是由首部字段名和字段值构成的,中间用冒号“:”分隔。字段值对应单个HTTP首部字段可以有多个值。

首部字段名:字段值

Content-Type:text/html
Keep-Alive:timeout=15,max=100

  当HTTP报文首部中出现了两个或两个以上具有相同首部字段名时,有的浏览器会优先处理第一次出现的首部字段,而有的浏览器则会优先处理最后出现的首部字段。
  四种HTTP首部字段类型:

  • 通用首部字段:请求报文和响应报文两方都会使用的首部;
  • 请求首部字段:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息;
  • 响应首部字段:从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息;
  • 实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息;
      HTTP/1.1首部字段:
      非HTTP/1.1首部字段:
      HTTP首部字段将定义缓存代理和非缓存代理的行为,分为两种类型:
  • 端到端首部(End-to-end Header):此类别中的首部会转发给请求/响应对应的最终接收目标,且必须保存在由缓存生成的响应中,另外规定它必须被转发;
  • 逐跳首部(Hop-by-hop Header):此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发。HTTP/1.1和之后的版本中,如果要使用逐跳首部,需要提供Connection首部字段;
      逐跳首部字段如下:
    Connection Keep-Alive Proxy-Authenticate Proxy-Authorization Trailer TE Transfer-Encoding Upgrade

6.3 http/1.1通用首部字段

  • Cache-Control:通过指定该字段指令,就能操作缓存的工作机制。
  • Connection:该字段具备两个作用:控制不再转发给代理的首部字段、管理持久连接。
  • Date:该字段表明创建HTTP报文的日期和时间。
  • Pragma:是HTTP/1.1之前版本的历史遗留字段,仅作为与HTTP/1.0的向后兼容而定义。
  • Trailer:该字段会事先说明在报文主体后记录了哪些首部字段。
  • Transfer-encoding:该字段规定了传输报文主体时采用的编码方式。
  • Upgrade:该字段用于检测HTTP协议及其他协议是否可使用更高的版本进行通信,其参数值可以用来指定一个完全不同的通信协议。
  • Via:该字段是为了追踪客户端与服务器之间的请求和响应报文的传输路径。
  • Warning:该字段是从HTTP/1.0的响应首部演变过来的。该首部通常会告知用户一些与缓存相关的问题的警告。

6.4 请求首部字段

1 . accept:
2 . accept-charset:
3 . accept-language:
4 . authorization:
5 . except:
6 . from:
7 . host:
8 . if-match:
9 . if-modified-since:
10 . if-none-match:
11 . if-range:
12 . if-unmodified-since:
13 . max-forwards:
14 . proxy-authorization:
15 . range:
16 . referer:
17 . accept-encoding:
18 . te:
19 . user-agent:

6.5 响应首部字段

1 . accept-ranges:
2 . age:
3 . etag:
4 . location:
5 . proxy-authenticate:
6 . retry-after:
7 . server:
8 . vary:
9 . www-authenticate:

6.6 实体首部字段

1 . allow:
2 . content-encoding:
3 . content-language:
4 . content-location:
5 . content-length:
6 . content-md5:
7 . content-range:
8 . content-type:
9 . expires:
10 . last-modified:

6.7 为cookie服务的首部字段

1 . set-cookie:
2 . cookie:

6.8 其他首部字段

1 . x-frame-options:
2 . x-xss-protection:
3 . dnt:
4 . p3p:

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
---------------last line for now----------------