Host

客户端发送请求时,用来指定服务器的域名。
image.png
Host: www.A.com

有了 Host 字段,就可以将请求发往「同一台」服务器上的不同网站。

Content-Length

服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据长度。
image.png

Content-Length: 1000

如上面则是告诉浏览器器,本次服务器回应的数据长度是 1000 个字节,后面的字节就属于下一个回应了。

Connection

Connection 字段最常用于客户端要求服务器使用 TCP 持久连接,以便其他请求复用。
image.png

HTTP/1.1 版本的默认连接都是持久连接,但为了了兼容老版本的 HTTP,需要指定 Connection 首部字段的值为 Keep-Alive 。

Connection: keep-alive

一个可以复用的 TCP 连接就建立了,直到客户端或服务器主动关闭连接。但是,这不是标准字段。

Content-Type

Content-Type 字段用于服务器回应时,告诉客户端,本次数据是什么格式。
image.png

Content-Type: text/html; charset=utf-8

上面的类型表明,发送的是网页,而且编码是UTF-8。客户端请求的时候,可以使用 Accept 字段声明自己可以接受哪些数据格式。

Accept: */*

上面代码中,客户端声明自己可以接受任何格式的数据。

Content-Encoding

Content-Encoding 字段说明数据的压缩方法。表示服务器返回的数据使用了什么压缩格式。
image.png

Content-Encoding: gzip

上面表示服务器返回的数据采用了了 gzip 方式压缩,告知客户端需要用此方式解压。客户端在请求时,用 Accept-Encoding 字段说明自己可以接受哪些压缩方法。

Accept-Encoding: gzip, deflate

补充

HTTP 头部本质上是一个传递额外重要信息的键值对。主要分为:通用头部,请求头部,响应头部和实体头部。

通用头部

协议头 说明 举例
Cache-Control 用来指定当前的请求/回复中是否使用缓存机制 Cache-Control: no-store
Connection 客户端(浏览器)想要优先使用的连接类型 Connection: keep-alive (Upgrade)
Date 报文创建时间 Date: Dec, 26 Dec 2015 17: 30: 00 GMT
Trailer 会实现说明在报文主体后记录哪些首部字段,该首部字段可以使用在 HTTP/1.1 版本分块传输编码时 Trailer: Expiress
Transfer-Encoding 用来改变报文格式 Transfer-Encoding: chunked
Upgrade 要求服务器升级到一个高版本协议 Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
Via 告诉服务器,这个请求是由哪些代理发出的 Via: 1.0 fred, 1.1 itbilu.com.com (Apache/1.1)
Warning 一个一般性的警告,表示在实体内容中可能存在错误 Warning: 199 Miscellaneous warning

请求头部

协议头 说明 举例
Accept 告诉服务器自己允许哪些媒体类型 Accept: text/plain
Accept-Charset 浏览器申明可接受的字符集 Accept-Charset: utf-8
Accept-Encoding 浏览器申明自己接收的编码方法 Accept-Encoding: gzip, deflate
Accept-Language 浏览器可接受的响应内容语言列表 Accept-Language: en-US
Authorization 用于表示 HTTP 协议中需要认证资源的认证信息 Authorization: Basic OSdjJGRpbjpvcGVul ANIc2SdDE==
Expect 表示客户端要求服务器做出特定的行为 Expect: 100-continue
From 发起此请求的用户的邮件地址 From: user@itbilu.com
Host 表示服务器的域名以及服务器所监听的端口号 Host: www.itbilu.com:80
If-XXX 条件请求 If-Modified-Since: Dec, 26 Dec 2015 17:30:00 GMT
Max-Forwards 限制该消息可被代理及网关转发的次数 Max-Forwards: 10
Range 表示请求某个实体的一部分,字节偏移以 0 开始 Range: bytes=500-999
Referer 表示浏览器所访问的前一个页面,可以认为是之前访问页面的链接将浏览器带到了当前页面 Referer: http://itbilu.com/nodejs
User-Agent 浏览器的身份标识字符串 User-Agent: Mozilla/……

响应头部

协议头 说明 举例
Accept-Ranges 字段的值表示可用于定义范围的单位 Accept-Ranges: bytes
Age 创建响应的时间 Age:5744337
ETag 唯一标识分配的资源 Etag:W/“585cd998-7c0f”
Location 表示重定向后的 URL Location: http://www.zcmhi.com/archives/94.html
Retry-After 告知客户端多久后再发送请求 Retry-After: 120
Server 告知客户端服务器信息 Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Vary 缓存控制 Vary: Origin

实体头部

协议头 说明 举例
Allow 对某网络资源的有效的请求行为,不允许则返回405 Allow: GET, HEAD
Content-encoding 返回内容的编码方式 Content-Encoding: gzip
Content-Length 返回内容的字节长度 Content-Length: 348
Content-Language 响应体的语言 Content-Language: en,zh
Content-Location 请求资源可替代的备用的另一地址 Content-Location: /index.htm
Content-MD5 返回资源的MD5校验值 Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ==
Content-Range 在整个返回体中本部分的字节位置 Content-Range: bytes 21010-47021/47022
Content-Type 返回内容的MIME类型 Content-Type: text/html; charset=utf-8
Expires 响应过期的日期和时间 Expires: Thu, 01 Dec 2010 16:00:00 GMT
Last-Modified 请求资源的最后修改时间 Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT