HTTP首部字段是构成HTTP报文的要素之一,在客户端和服务器之间以HTTP协议进行通信的过程中,无论是请求还是响应都会使用首部字段,他能起到额外传递信息的作用。
使用首部字段是为了给浏览器和服务器提供报文主体大小,所使用的语言,认证信息内容。
4中HTTP首部字段类型
HTTP首部字段根据实际用途被分为4种类型
通用首部类型(General Header Fields)
请求报文和响应报文两方都会使用的首部
请求首部类型(Request Header Fields)
从客户端到服务器发送报文时使用的首部,补充了响应的附加内容,客户端信息相应内容相关优先级等信息。
响应首部字段(Response Header Fields)
从服务端向客户端返回响应报文时使用的首部,补充了响应附加内容,也会要求客户端附加额外的内容信息
实体首部字段(Entity Header Fields)
针对请求报文和响应报文的实体部分使用的首部,补充了资源内容,更新时间等实体相关的信息。
以下所有字段均基于 HTTP1.1
通用首部字段
首部字段名 | 解释 | 实例 |
---|---|---|
Cache-Control | 控制缓存的行为 | no cache ,public,private |
Connection | 逐跳首部,链接的管理 | keep alive;colse |
Date | 创建报文的日期时间 | date: Sun, 25 Nov 2018 13:43:12 GMT |
Pragma | 报文指令 | no cache |
Trailer | 报文末端的首部一览 | Expires |
Transfer-Encoding | 指定报文主体的传输编码格式 | chunked |
Upgrade | 升级为其他协议 | TLS/1.0 |
Via | 代理服务器的相关信息 | |
Warning | 错误通知 | Response is stale(缓存已过期) |
请求首部字段
首部字段名 | 解释 | 实例 |
---|---|---|
Accept | 用户代理可处理媒体类型 | no cache ,public,private |
Accept-Charset | 优先的字符集 | iso-8859-5 |
Accept-Encoding | 优先的内容编码 | gzip, deflate |
Accept-Language | 优先的语言(自然语言) | zh-CN,zh;q=0.9 |
Authorization | Web认证信息 | Basic … |
Ecpect | 期待服务器的特定行为 | 100-continue |
From | 用户的电子邮件地址 | xxx@163.com |
Host | 请求资源所在服务器 | www.baidu.com |
If-Match | 比较实体标记(ETag) | “123456” |
If-Modified-Since | 比较资源的更新时间 | Wed, 05 Dec 2018 09:41:25 GMT |
If-None_Match | 比较实体比较(与If-Match相反) | W/“5c079d45-115ec” |
If_Range | 资源为更新时发送实体byte的范围请求 | “123456” |
IF_Unmodified-Since | 比较资源的更新时间(与f-Modified-Since相反) | Wed, 05 Dec 2018 09:41:25 GMT |
Max-Forwards | 最大传输调数 | 2 |
Proxy-Authorization | 代理服务器要求客户端的认证信息 | Basic … |
Range | 实体的字节范围请求 | bytes 5001-10000 |
Referer | 对请求中URI的原始获取方 | https://pos.baidu.com/wh/o.htm?ltr= |
TE | 传输编码的优先级 | gzip,deflate;q=0.5 |
User-Agent | HTTP客户端程序的信息 | Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Mobile Safari/537.36 |
响应首部字段
首部字段名 | 解释 | 实例 |
---|---|---|
Accepts-Ranges | 是否接受字节范围请求 | bytes |
Age | 推算资源创建经过时间 | 600 |
ETag | 资源匹配信息 | usagi-1234 |
Location | 令客户端重定向至指定URI | http://www.baidu.com |
Proxy-Authenticate | 代理服务器对客户端的认证信息 | Basic realm=“Usagidesign Auth” |
Retry-After | 对再次发起请求的时机要求 | 120 |
Sever | HTTP服务器的安装信息 | JSP3/2.0.14 |
Vary | 代理服务器对客户端的管理信息 | Accept Language |
WWW-Authenticate | 服务器对客户端的认证信息 | Basic realm=“Usagidesign Auth” |
实体首部字段
首部字段名 | 解释 | 实例 |
---|---|---|
Allow | 资源可支持的HTTP方法 | Get,Head |
Content-Encoding | 实体主体适用的编码方式 | gzip |
Content-Language | 实体主体的编码语言 | zh-CN |
Content-Length | 实体主体的大小(单位:字节) | 1500 |
Content-Location | 替代对应资源的URI | http://www.baidu.com |
Content-MD5 | 实体主体的报文摘要 | |
Content-Range | 实体主体的位置范围 | bytes 5001-10000/10000 |
Content-Type | 实体主体的媒体类型 | text/html;charset=UTF-8 |
Expires | 实体主体过期的日期时间 | Thu, 06 Dec 2018 13:23:02 GMT |
Last-Midified | 资源的最后修改日期时间 | Mon, 26 Dec 2016 09:48:01 GMT |
更多参见 w3c官网Header Field Definitions