Host
客户端发送请求时,用来指定服务器的域名。Host: www.A.com
有了 Host 字段,就可以将请求发往「同一台」服务器上的不同网站。
Content-Length
服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据长度。
Content-Length: 1000
如上面则是告诉浏览器器,本次服务器回应的数据长度是 1000 个字节,后面的字节就属于下一个回应了。
Connection
Connection 字段最常用于客户端要求服务器使用 TCP 持久连接,以便其他请求复用。
HTTP/1.1 版本的默认连接都是持久连接,但为了了兼容老版本的 HTTP,需要指定 Connection 首部字段的值为 Keep-Alive 。
Connection: keep-alive
一个可以复用的 TCP 连接就建立了,直到客户端或服务器主动关闭连接。但是,这不是标准字段。
Content-Type
Content-Type 字段用于服务器回应时,告诉客户端,本次数据是什么格式。
Content-Type: text/html; charset=utf-8
上面的类型表明,发送的是网页,而且编码是UTF-8。客户端请求的时候,可以使用 Accept 字段声明自己可以接受哪些数据格式。
Accept: */*
上面代码中,客户端声明自己可以接受任何格式的数据。
Content-Encoding
Content-Encoding 字段说明数据的压缩方法。表示服务器返回的数据使用了什么压缩格式。
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 |