HTTP协议的请求和响应报文中必定包含HTTP报文头部,也称为首部。首部内容分别为客户端和服务器处理请求和响应提供所需要的信息。本质上来说,首部包含一些名/值对的数值,类似于键值对。单个HTTP首部字段可以有多个值,用逗号分隔.
首部的分类:
- 通用首部:既可出现在请求报文中,也可出现在响应报文中。比如Date首部。
- 请求首部:请求报文才有的,描述请求数据和客户端特性。
- 响应首部:响应报文中的,描述服务端。
- 实体首部:描述是实体内容性质。
- 扩展首部:非标准的首部。
请求头:
响应头:
通用首部
通用首部是请求头和响应头、共有的,有Connection、Cache-Control、Date、Pragma、Trailer、Transfer-Encoding、Upgrade、Via、Warning。
首部字段名 | 作用说明 | 值 | 值说明 |
Connection | 控制是否持久连接; 控制不再转发给代理的首部字段; |
Connection:Keep-Alive | HTTP 1.1之前版本默认是短连接,旧版本需要使用持久连接需要设置Keep-Alive属性值 |
Connection:close | HTTP/1.1版本默认持久连接,如需中断连接发送close属性值 | ||
请求报文头部中的Cache-Control | 规定缓存行为 用于请求头 |
Cache-Control:no-store | 不缓存请求和响应的任何内容 |
no-cache | 告知代理(中间)服务器不直使用缓存,要求直接向原服务器请求 | ||
max-age=[seconds] | 告知服务器,客户端希望收到一个存在时间小于seconds秒的资源 | ||
max-stale(=[seconds]) | 告知代理服务器,客户端希望收到超过缓存时间seconds秒的资源,没定义则任意时长 | ||
min-fresh=[seconds] | 规定返回的资源在至少在seconds秒内被更新过 | ||
only-if-cached | 只从缓存中获取资源,不到达原服务器 | ||
no-transform | 规定服务器返回的实体数据是没有被转换(比如压缩)过的资源 | ||
响应报文头部中的Cache-Control | 表示是否能缓存 用于响应头 |
Cache-Control:public | 表示允许客户端缓存响应信息,并可以给其他用户使用 |
private[="user-name"] |
仅供特定用户缓存,使用 | ||
no-cache |
服务器返回的响应中包含no-cache指令,说明缓存服务器不会再对资源进行缓存。 | ||
no-store |
不缓存请求或响应的任何内容 | ||
no-transf |