HTTP 头速查

常用 HTTP 请求/响应头说明速查。

名称类型作用示例
Accept请求声明客户端能处理的响应内容类型Accept: text/html,application/json
Accept-Encoding请求声明客户端支持的内容压缩编码Accept-Encoding: gzip, br
Accept-Language请求声明客户端偏好的语言Accept-Language: zh-CN,zh;q=0.9
Authorization请求携带身份认证凭据(如 Bearer Token)Authorization: Bearer <token>
Cookie请求携带之前由服务端 Set-Cookie 下发的会话数据Cookie: sid=abc123
Content-Type请求声明请求体的媒体类型(请求与响应通用)Content-Type: application/json; charset=utf-8
Content-Length请求声明请求体/响应体的字节长度(请求与响应通用)Content-Length: 348
User-Agent请求标识发起请求的客户端软件(浏览器/爬虫等)User-Agent: Mozilla/5.0 ...
Referer请求声明当前请求来源的页面地址Referer: https://example.com/page
Origin请求声明发起跨域请求的源,用于 CORS 校验Origin: https://example.com
Host请求声明请求目标的主机名与端口Host: example.com
If-None-Match请求配合 ETag 做协商缓存校验If-None-Match: "abc123"
If-Modified-Since请求配合 Last-Modified 做协商缓存校验If-Modified-Since: Wed, 21 Oct 2024 07:28:00 GMT
Range请求请求资源的指定字节范围(断点续传/分片下载)Range: bytes=0-1023
X-Requested-With请求标识是否为 AJAX 异步请求(历史遗留约定)X-Requested-With: XMLHttpRequest
X-Forwarded-For请求经代理转发时记录原始客户端 IP 链X-Forwarded-For: 1.2.3.4
Set-Cookie响应服务端下发 Cookie 给客户端存储Set-Cookie: sid=abc123; HttpOnly; Secure
Cache-Control响应控制缓存行为,也可用于请求方声明缓存要求Cache-Control: max-age=3600, public
ETag响应资源内容的唯一标识,用于协商缓存校验ETag: "abc123"
Last-Modified响应资源最后修改时间,用于协商缓存校验Last-Modified: Wed, 21 Oct 2024 07:28:00 GMT
Location响应重定向(3xx)时指明新的资源地址Location: https://example.com/new-page
Access-Control-Allow-Origin响应声明允许跨域访问该资源的源Access-Control-Allow-Origin: *
Content-Encoding响应声明响应体实际使用的压缩编码Content-Encoding: gzip
Content-Disposition响应指示内容以内联展示还是作为附件下载Content-Disposition: attachment; filename="a.pdf"
Strict-Transport-Security响应强制浏览器此后只用 HTTPS 访问该域名(HSTS)Strict-Transport-Security: max-age=31536000
X-Content-Type-Options响应禁止浏览器嗅探/篡改声明的内容类型X-Content-Type-Options: nosniff
X-Frame-Options响应控制页面是否可被嵌入 iframe,防点击劫持X-Frame-Options: DENY
Content-Security-Policy响应声明允许加载资源的来源策略,防 XSS 等攻击Content-Security-Policy: default-src 'self'
Server响应声明处理请求的服务端软件信息Server: nginx
Retry-After响应告知客户端多久后可重试请求(常配合 429/503)Retry-After: 120

什么是HTTP 头速查?

HTTP头速查是一份汇总常见HTTP请求头(Request Headers)与响应头(Response Headers)含义、格式与使用场景的参考页面,比如请求头里的User-Agent(客户端标识)、Authorization(认证凭据)、Content-Type(请求体格式)、Accept-Encoding(客户端支持的压缩方式),响应头里的Content-Type、Cache-Control(缓存策略)、Set-Cookie(下发Cookie)、Access-Control-Allow-Origin(CORS跨域许可)等,帮助开发者快速核对某个头字段该怎么写、代表什么意思。

为什么使用HTTP 头速查?

做接口调试、抓包分析(Chrome DevTools Network面板、Postman、curl -v)时经常会看到一堆头字段,很多头名字相近但含义完全不同(比如Cache-Control和Expires都和缓存有关但优先级不同、Content-Length和Transfer-Encoding: chunked是互斥的两种传递body长度的方式),速查表能帮助快速判断“这个头该不该出现在这里”、“值该怎么设置”,尤其在排查跨域(CORS)、缓存不生效、认证失败这几类高频问题时很实用。

使用示例

跨域场景

浏览器发起跨域请求后,服务器响应头需要包含 Access-Control-Allow-Origin: https://example.com(或*),否则浏览器会在控制台报CORS错误并阻止前端读取响应内容,即使接口实际已经返回了数据。

缓存控制

响应头 Cache-Control: no-cache, max-age=0 表示浏览器每次都要向服务器重新验证资源是否更新(配合ETag/Last-Modified),而 Cache-Control: max-age=31536000 则表示可以直接使用本地缓存一年不必请求。

认证头

请求头 Authorization: Bearer eyJhbGciOi... 是携带JWT令牌访问需要登录接口的标准写法,服务器收到后从Bearer后面提取token做验证。

使用提示

排查HTTP相关问题时优先用浏览器DevTools的Network面板或curl -v/-I查看真实的请求/响应头,不要只凭猜测判断某个头是否生效,因为浏览器、CDN、反向代理都可能在中途修改或补充头字段。

常见问题

请求头和响应头有什么区别?
请求头由客户端在发起 HTTP 请求时携带,用于告知服务端客户端的信息与期望;响应头由服务端返回,用于告知客户端资源的元信息与处理指令。部分头(如 Content-Type、Content-Length)请求和响应均可使用。
为什么有的头查不到?
本表收录的是最常见、最常用的 HTTP 头,完整标准头列表可参考 IANA HTTP 头注册表,此外还有大量自定义/私有的 X- 前缀头未逐一列出。
数据会上传吗?
不会。本表为内置静态数据,过滤在浏览器本地完成,不发起任何网络请求。
Content-Type写错了会怎样?
服务器/浏览器可能无法正确解析请求体或响应体,比如明明发的是JSON数据却设置Content-Type: text/plain,后端框架可能不会自动解析成对象,导致读取到的数据是空的或原始字符串。
为什么设置了CORS头还是跨域失败?
常见原因包括Access-Control-Allow-Origin不能是*同时又要携带Cookie(withCredentials时必须写明确的源而非通配符)、预检请求(OPTIONS)没有正确处理、或者头字段写在了请求头而非响应头。
Cache-Control和Expires哪个优先级高?
Cache-Control是HTTP/1.1引入的更现代的缓存控制方式,功能更细粒度(no-cache、no-store、max-age等),同时出现时Cache-Control会覆盖Expires的效果,建议优先用Cache-Control。
请求头和响应头可以自定义吗?
可以,只要不与标准头冲突,通常约定自定义头以X-开头(如X-Request-Id),但需注意跨域场景下自定义请求头需要服务器在Access-Control-Allow-Headers中显式声明才能被浏览器允许发送。
HTTP/2下头字段还是这些吗?
语义上头字段名和值基本不变,但HTTP/2把头压缩(HPACK)并采用二进制帧传输,字段名统一小写,性能更优,开发者理解和使用头字段的方式基本没有变化。

相关工具

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。