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 | 用户的电子邮件地址 | [email protected] |
| 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