HTTP 请求/响应头手册

更新于 2026年7月25日

适用人群:排查网站访问异常、配置反向代理/CDN、调试爬虫抓取问题的开发者和站长。

核心概念

请求头 vs 响应头

请求头(Request Headers)由浏览器/客户端在发起请求时携带,告诉服务器"我是谁、我要什么";响应头(Response Headers)由服务器返回,告诉客户端"这是什么内容、如何处理"。部分头(如Cache-Control)在请求和响应中都可出现,含义略有不同。

常用HTTP头对照表

头名 方向 作用
Host 请求 指定目标域名,支撑同一IP多域名共存(虚拟主机)
User-Agent 请求 标识客户端类型(浏览器/爬虫/App),常用于反爬或统计
Accept 请求 声明客户端可接受的内容类型(如text/html, application/json)
Accept-Encoding 请求 声明客户端支持的压缩方式(gzip, br等)
Referer 请求 说明请求来源页面地址,常用于防盗链
Cookie 请求 携带会话/身份信息
Authorization 请求 携带身份认证凭据(如Bearer Token、Basic Auth)
Content-Type 请求/响应 说明请求体或响应体的数据格式(如text/html; charset=utf-8)
Content-Length 响应 响应体字节长度
Cache-Control 请求/响应 控制缓存策略(如max-age、no-cache、no-store)
Expires 响应 指定内容过期的绝对时间,效果被Cache-Control覆盖
ETag 响应 内容指纹,用于协商缓存判断资源是否变化
Last-Modified 响应 资源最后修改时间,配合If-Modified-Since做协商缓存
Set-Cookie 响应 服务器向客户端写入Cookie
Location 响应 配合3xx状态码指定跳转目标地址
Server 响应 声明服务器软件类型(如nginx、Apache),出于安全常被隐藏
X-Frame-Options 响应 控制页面是否允许被iframe嵌套,防点击劫持
Strict-Transport-Security 响应 强制浏览器后续只用HTTPS访问(HSTS)
Content-Security-Policy 响应 限制页面可加载的脚本/资源来源,防XSS
Access-Control-Allow-Origin 响应 CORS跨域许可的来源域名

排查思路

遇到"页面被缓存不更新"先看Cache-Control/ETag;遇到"跳转异常"看Location和状态码是否匹配;遇到"爬虫抓不到内容"看User-Agent识别逻辑和响应头是否有异常拦截。

对应工具

常见问题

Cache-Control和Expires同时存在听谁的?
Cache-Control优先级更高,现代浏览器会优先采用Cache-Control的max-age等指令,Expires仅作为兼容旧客户端的降级方案。
为什么响应头里看不到Server具体版本号?
出于安全考虑,很多服务器/CDN会主动隐藏或简化Server头,避免暴露具体软件版本给攻击者作为漏洞利用参考。

相关教程

相关文章

官方资料来源