第六章 我们先来介绍一下HTTP首部,HTTP首部字段的概念,HTTP首部字段的4种类型,和各种HTTP首部字段的简要说明。
一,HTTP报文首部
1.我们先来看一下HTTP报文的结构
报文首部:在客户端与服务器端处理时起至关重要作用的信息几乎都在报文首部。
报文主体:所需要的用户和资源的信息都在这边。
HTTP协议的请求和响应报文中必定包含报文首部,就是说可以不包含报文主体。首部内容为客户端和服务器分别处理响应和请求提供所需要的信息。
2.下面我们通过请求报文和响应报文两个方面看一下报文首部的结构
(1)HTTP请求报文
在请求中,HTTP报文由方法,URI,HTTP版本(这三类包含在请求行内)和HTTP首部字段等部分构成。
(2)HTTP响应报文
在响应中,HTTP报文由HTTP版本,状态码和原因短语(这三类包含在状态行内)和HTTP首部字段等部分构成。
在报文的众多内容中,HTTP首部字段包含的信息最为丰富,首部字段同时存在于请求和响应报文内,并涵盖HTTP报文相关的内容信息。
二,HTTP首部字段
(1)HTTP首部字段传递重要信息
HTTP首部字段是HTTP报文首部的重要部分。在客户端和服务器进行通信的过程中,无论是请求还是响应都会使用首部字段,它能起到传递额外重要信息的作用。
使用首部字段是为了给浏览器和服务器提供报文主体大小,所使用的语言,认证信息等内容。
(2)HTTP首部字段结构
HTTP首部字段由首部字段名和字段值构成,中间用冒号“:”分隔。如下:
首部字段名: 字段值
例如,在HTTP首部中以Content-Type这个字段来表示报文主体的对象类型。
Content-Type: text /html
另外,字段值对应单个HTTP首部字段可以有多个值。
Keep-Alive: timeout=15 , max=100
* 如果HTTP报文首部出现两个或两个以上具有相同字段名时,不同的浏览器会进行不同的选择,有的会优先处理第一次出现的首部字段,有些则会优先处理最后出现的首部字段。
(3) 4种HTTP首部字段类型
HTTP首部字段根据实际用途被分为以下4种类型:
.通用首部字段: 请求和响应报文两方都会使用的首部字段。
.请求首部字段:从客户端向服务器发送请求报文时使用的首部字段。补充了请求的附加内容,客户端信息,响应内容相关优先级等信息。
.响应首部字段:从服务器向客户端返回响应报文时使用的首部字段。补充了响应的附加内容,也会要求客户端附加额外的内容信息。
.实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容的更新时间等与实体有关的信息。
(4) HTTP/1.1首部字段一览:
HTTP/1.1规范定义了如下47种首部字段。
.通用首部字段
.请求首部字段
.响应首部字段
.实体首部字段
以上绿颜色的首部字段属于逐跳首部(Hop-by-hop Header) 而黑色的属于端到端首部(End-to-end Header)。
端到端首部:分在此类别中的首部会转发请求/响应给对应的最终接受目标。且必须保存在由缓存服务器生成的响应中,另外规定它必须被转发。
逐跳首部:分在此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发。
(5) 非HTTP/1.1首部字段
在HTTP协议通信交互中使用到的首部字段,不限于RFC2616中定义的以上47种首部字段。还有Cookie,Set-Cookie和Content-Disposition等在其他RFC中定义的首部字段,他们使用的频率也很高。(这些非正式的首部字段统一归纳在RFC4229 HTTP Header Field Registrations中)。
...................................................
以上就是本节要讲的内容,关于各种首部字段的具体用法,我们会在以后的章节继续讲解。