HTTP 报文首部

← 返回 MOC | ← 主页 | ← 返回HTTP报文


HTTP 首部字段分为四类:通用首部(请求和响应都能用)、请求首部(只在请求中出现)、响应首部(只在响应中出现)、实体首部(描述报文主体)。

通用首部字段

首部字段名说明
Cache-Control控制缓存行为(如 no-cachemax-age=秒数
Connection管理连接(keep-alive / close),也用于控制哪些首部不转发给代理
Date报文创建的日期时间
PragmaHTTP/1.0 遗留的缓存控制(no-cache),向后兼容用
Trailer说明报文末尾有哪些首部字段(分块传输时用)
Transfer-Encoding传输报文主体时的编码方式(如 chunked
Upgrade请求升级到其他协议(如 WebSocket)
Via追踪请求/响应经过的代理节点
Warning缓存相关的警告信息

请求首部字段

首部字段名说明
Accept客户端能处理的媒体类型及优先级(如 text/html,application/json
Accept-Charset客户端支持的字符集及优先级
Accept-Encoding客户端支持的内容编码(如 gzipdeflate
Accept-Language客户端偏好的自然语言(如 zh-CN,en
Authorization客户端的认证凭据(如 Bearer Token)
Expect期望服务器的特定行为(如 100-continue
From发出请求的用户的邮件地址
Host请求的目标主机名和端口(HTTP/1.1 必须携带)
If-Match条件请求:ETag 匹配时才执行
If-Modified-Since条件请求:资源在指定时间后有修改才返回
If-None-Match条件请求:ETag 不匹配时才执行(常用于缓存验证)
If-Range条件请求:ETag 或日期匹配时才做范围请求
If-Unmodified-Since条件请求:资源在指定时间后未修改才执行
Max-Forwards限制请求经过的最大代理/网关跳数(TRACE/OPTIONS 用)
Proxy-Authorization代理服务器要求的认证凭据
Range请求实体的字节范围(断点续传)
Referer请求来源页面的 URI
TE客户端支持的传输编码及优先级
User-Agent发起请求的客户端程序信息

响应首部字段

首部字段名说明
Accept-Ranges服务器是否支持范围请求(bytes / none
Age响应在代理缓存中存放的时间(秒)
ETag资源的唯一标识符,用于缓存验证
Location重定向的目标 URI
Proxy-Authenticate代理服务器要求客户端认证的方式
Retry-After告知客户端多久后可以再次发请求
Server服务器软件信息
Vary代理缓存时,哪些请求首部影响缓存版本
WWW-Authenticate服务器要求客户端认证的方式(401 响应时携带)

实体首部字段

首部字段名说明
Allow资源支持的 HTTP 方法列表(405 响应时携带)
Content-Encoding实体主体的内容编码方式(如 gzip
Content-Language实体主体的自然语言
Content-Length实体主体的字节长度
Content-Location实体主体对应的 URI
Content-MD5实体主体的 MD5 摘要,用于完整性校验
Content-Range实体主体的字节范围(配合范围请求使用)
Content-Type实体主体的媒体类型(如 text/html; charset=UTF-8
Expires实体主体的过期日期时间
Last-Modified资源最后修改的日期时间

Cookie 不属于 HTTP/1.1 规范,但使用极为普遍,单独列出。

首部字段名出现位置说明
Set-Cookie响应服务器向客户端写入 Cookie
Cookie请求客户端将保存的 Cookie 发回服务器

Set-Cookie 常见属性:

属性说明
expiresCookie 的有效期;省略则为会话 Cookie(关闭浏览器即失效)
path限制 Cookie 发送范围的文件目录
domainCookie 适用的域名(可跨子域)
Secure仅在 HTTPS 连接时发送
HttpOnly禁止 JavaScript 读取,防止 XSS 窃取 Cookie