HTTP Headers
2026-04-02
前言
HTTP 请求头(Headers)是 HTTP 报文的重要组成部分,用于在客户端与服务器之间传递元信息。按照语义可划分为:通用头(General)、请求头(Request)、响应头(Response)以及实体头(Entity / Representation Headers)。不同类别关注的维度不同:连接管理、协商机制、缓存策略以及资源描述等。
需要注意,随着 HTTP/2 与 HTTP/3 的发展,部分头部(如 Connection)已被废弃或语义发生变化,但在工程实践(尤其是 HTTP/1.1)中仍然具有重要参考价值。
一、通用头
通用头既可出现在请求中,也可出现在响应中,主要用于描述消息本身或连接层行为。
常用
Cache-Control
- 版本:HTTP/1.1 引入(HTTP/1.0 主要依赖
Pragma/Expires) - 作用:精细控制缓存策略(现代缓存体系核心头)
- 常见取值:
no-store:禁止缓存(最严格)no-cache:使用缓存前必须重新验证private:仅允许浏览器缓存(禁止共享缓存,如 CDN)public:允许任何缓存(包括代理/CDN)max-age=秒:资源最大存活时间s-maxage=秒:仅作用于共享缓存(优先级高于 max-age)
Connection
- 版本:HTTP/1.1(HTTP/2 起被废弃)
- 作用:控制连接是否复用
- 常见取值:
keep-alive:保持长连接(HTTP/1.1 默认行为)close:请求后关闭连接
- 说明:HTTP/2 使用多路复用,不再依赖该头
次要
Date:表示报文发送时间(GMT)
Pragma: no-cache; HTTP/1.0;现已被 Cache-Control 替代
Transfer-Encoding:chunked HTTP/2 已不再使用
Upgrade:用于协议升级(如 HTTP → WebSocket)
Via: 表示经过的代理节点(调试链路用)
二、请求头
请求头由客户端发送,用于描述客户端能力、请求条件以及身份信息。
常用
Host
- 版本:HTTP/1.1 强制要求
- 作用:指定目标主机(支持虚拟主机)
- 示例:
Host:http://www.example.com
Authorization
- 作用:认证信息
- 常见类型:
Basic base64(username:password)Bearer token(OAuth / JWT)
Cookie
- 作用:携带客户端状态(会话、登录态)
- 特点:由浏览器自动维护
User-Agent
- 作用:标识客户端环境(浏览器、系统)
- 用途:兼容性处理、日志分析
Accept
- 作用:声明可接受的数据类型
- 常见取值:
application/jsontext/html
Accept-Encoding
- 作用:声明支持的压缩算法
- 常见值:
gzipdeflatebr
Accept-Language
- 作用:语言协商
- 示例:
Accept-Language:en-US, zh-CN;q=0.9
If-Modified-Since
- 配合
Last-Modified;未修改 → 返回304
If-None-Match
- 配合
ETag;精度高于时间戳
次要
Referer:来源页面(拼写历史遗留)Expect: 100-continue:大请求预校验From:用户邮箱(几乎不用)If-Match:强一致性校验
三、响应头
响应头由服务器返回,用于描述响应内容、缓存策略以及跨域控制。
常用
Content-Type
- 作用:声明响应体类型
- 标准格式:
Content-Type: type/subtype; parameter=value - 常见取值:
application/jsontext/htmltext/plainimage/*charset=UTF-8multipart/form-data
Set-Cookie
- 作用:服务器向客户端写入 Cookie
- 常见属性:
HttpOnlySecureSameSite
ETag
- 资源唯一标识(哈希/版本号)
- 用于协商缓存
Last-Modified
- 资源最后修改时间
Expires
- 版本:HTTP/1.0
- 绝对过期时间(已被
Cache-Control替代)
Access-Control-Allow-Origin
- 作用:CORS 核心头
- 取值:
*www.example.com
次要
Server:服务器信息(可隐藏)Location:重定向地址(301/302)Vary:缓存维度(如Accept-Encoding)Content-Length:响应体长度
四、实体头
实体头用于描述 HTTP 报文中的“实体内容”(即请求体或响应体),在 HTTP/1.1 语义中与响应头有部分重叠。
常用
Content-Type
- 描述实体数据类型,同上
Content-Length
- 实体大小(字节)
- 与
Transfer-Encoding互斥
Content-Encoding
- 实体压缩方式
- 常见值:
gzip,br
Content-Range
- 作用:支持断点续传 / 分片加载
- 示例:
Content-Range: bytes 0-499/1234
次要
Content-MD5:完整性校验(已较少使用)Content-Location:资源 URIContent-Language:资源语言
总结
HTTP 头部的本质是“协议控制面”,其核心价值体现在四个方面:
- 缓存体系:
Cache-Control+ETag构成现代缓存机制核心 - 内容协商:
Accept*系列实现多版本资源分发 - 连接与性能优化:
Connection、压缩相关头提升传输效率 - 安全与鉴权:
Authorization、Cookie、CORS 头控制访问边界
在实际前端开发中,应重点关注:
- 请求侧:
Authorization、Cookie、Accept - 响应侧:
Content-Type、缓存头(ETag/Cache-Control) - 跨域:
Access-Control-*
这些头部直接决定了接口的可用性、性能与安全性。