概述
- HTTP 响应头用于传递服务器到客户端的元信息(内容类型、缓存策略、安全策略、跨域、重定向等)。HTTP Headers 查看
基础与标识
- Date: 响应生成时间。示例:Date: Sat, 20 Dec 2025 12:34:56 GMT
- Server: 服务器软件和版本(可泄露信息)。示例:Server: nginx/1.21.6
- X-Powered-By: 应用框架/语言信息(推荐去掉)。示例:X-Powered-By: Express
内容描述与协商
- Content-Type: MIME 类型及字符集。示例:Content-Type: text/html; charset=utf-8
- Content-Length: 响应主体字节数(未分块时)。示例:Content-Length: 3487
- Content-Encoding: 传输编码(gzip、br、deflate)。示例:Content-Encoding: gzip
- Content-Language: 内容语言。示例:Content-Language: en-US
- Content-Disposition: 建议的文件名/下载行为。示例:Content-Disposition: attachment; filename="report.pdf"
- Content-Location: 资源的实际位置(可用于替代 URL)。示例:Content-Location: /images/logo.png
- Content-Range: 分片响应时说明范围与总长度。示例:Content-Range: bytes 200-1000/67589
- Vary: 指示缓存区分的请求头(Accept-Encoding、User-Agent 等)。示例:Vary: Accept-Encoding, User-Agent
传输与连接
- Transfer-Encoding: chunked 等分块传输标志。示例:Transfer-Encoding: chunked
- Connection: 连接控制(Keep-Alive/close)。示例:Connection: keep-alive
- Keep-Alive: 保持连接参数(非标准)。示例:Keep-Alive: timeout=5, max=100
缓存控制
- Cache-Control: 细粒度缓存策略(max-age, no-cache, no-store, public, private)。示例:Cache-Control: public, max-age=3600
- Expires: 过期时间(旧式)。示例:Expires: Wed, 21 Oct 2025 07:28:00 GMT
- Pragma: HTTP/1.0 兼容性,常见 Pragma: no-cache(请求头居多)
- Last-Modified: 资源最后修改时间,用于条件请求。示例:Last-Modified: Tue, 15 Dec 2025 10:20:30 GMT
- ETag: 实体标签,用于缓存/条件请求。示例:ETag: "686897696a7c876b7e"
- Age: 代理缓存已保存时间(秒)。示例:Age: 120
- Warning: 缓存相关警告信息。示例:Warning: 110 - "Response is stale"
- Surrogate-Control: CDN/边缘缓存特定指令(Varnish/CDN)。示例:Surrogate-Control: max-age=3600
重定向与位置
- Location: 重定向目标或新资源位置(响应 3xx、201)。示例:Location: https://example.com/new
- Refresh: 非标准,自动刷新/跳转(通常用 meta 更普遍)
认证与访问控制
- WWW-Authenticate: 要求认证的挑战。示例:WWW-Authenticate: Basic realm="Access to site"
- Proxy-Authenticate: 代理认证挑战(代理相关)。
- Authentication-Info: 认证后信息(Digest 等)。
跨域(CORS)
- Access-Control-Allow-Origin: 允许的来源。示例:Access-Control-Allow-Origin: https://example.com 或 *
- Access-Control-Allow-Methods: 允许的方法。示例:Access-Control-Allow-Methods: GET, POST, OPTIONS
- Access-Control-Allow-Headers: 允许的请求头列表。示例:Access-Control-Allow-Headers: Content-Type, Authorization
- Access-Control-Allow-Credentials: 允许发送凭证(cookies)。示例:Access-Control-Allow-Credentials: true
- Access-Control-Expose-Headers: 可被浏览器访问的响应头列表。示例:Access-Control-Expose-Headers: X-My-Header
- Access-Control-Max-Age: 预检结果缓存时间(秒)。示例:Access-Control-Max-Age: 86400
安全相关(浏览器指令)
- Strict-Transport-Security (HSTS): 强制 HTTPS、包含子域、max-age。示例:Strict-Transport-Security: max-age=31536000; includeSubDomains
- Content-Security-Policy (CSP): 防止 XSS、资源加载策略。示例:Content-Security-Policy: default-src 'self'; img-src https:
- X-Frame-Options: 防止点击劫持(DENY、SAMEORIGIN)。示例:X-Frame-Options: DENY
- X-Content-Type-Options: 防止 MIME 类型嗅探(nosniff)。示例:X-Content-Type-Options: nosniff
- X-XSS-Protection: 老旧的 XSS 保护指令(多数浏览器弃用)。示例:X-XSS-Protection: 1; mode=block
- Referrer-Policy: 引荐来源信息策略。示例:Referrer-Policy: no-referrer-when-downgrade
- Feature-Policy / Permissions-Policy: 控制浏览器功能(相机、麦克风等)。示例:Permissions-Policy: geolocation=(self)
- Expect-CT: 证书透明策略(已较少使用)。示例:Expect-CT: max-age=86400, enforce
- Public-Key-Pins (HPKP): 已弃用(曾用于公钥绑定)
跨源资源和隔离
- Cross-Origin-Resource-Policy (CORP): 资源是否可跨域嵌入。示例:Cross-Origin-Resource-Policy: same-origin
- Cross-Origin-Opener-Policy (COOP): 站点隔离。示例:Cross-Origin-Opener-Policy: same-origin
- Cross-Origin-Embedder-Policy (COEP): 要求同源或 CORS 可加载。示例:Cross-Origin-Embedder-Policy: require-corp
- Origin-Agent-Cluster: 站点隔离/进程分配。示例:Origin-Agent-Cluster: ?1
压缩与性能
- Server-Timing: 提供后端度量信息(浏览器性能面板可见)。示例:Server-Timing: db;dur=53, app;dur=47
- Timing-Allow-Origin: 允许哪些源获取 Server-Timing。示例:Timing-Allow-Origin: *
- Alt-Svc: 指示备用服务(QUIC/HTTP/2 等)。示例:Alt-Svc: h3-29=":443"; ma=2592000
- Early-Data: 与 TLS 0-RTT 相关(服务器提示支持)
- Link: 资源预加载/预连接提示(rel=preload/preconnect/prefetch)。示例:Link: </styles.css>; rel=preload; as=style
代理 / 中间件
- Via: 请求/响应经过的代理列表。示例:Via: 1.1 varnish
- Forwarded: 代理转发信息(统一格式)。示例:Forwarded: for=192.0.2.60;proto=https;by=203.0.113.43
- X-Forwarded-For / X-Forwarded-Proto / X-Forwarded-Host: 常见代理扩展(非标准)
- Retry-After: 503 等时建议的重试间隔(秒或日期)。示例:Retry-After: 120
Cookie 与会话
- Set-Cookie: 设置 cookie(含 Secure, HttpOnly, SameSite)。示例:Set-Cookie: sessionId=abc; Path=/; HttpOnly; Secure; SameSite=Lax
资源和机器人
- Link(也用于 API 分页/关系)
- X-Robots-Tag: 指示爬虫的抓取/索引行为(适用响应头)。示例:X-Robots-Tag: noindex, nofollow
错误与认证信息
- WWW-Authenticate / Proxy-Authenticate(见上)
- Retry-After(见上)
- X-Request-ID 或 Trace-Id: 请求追踪 ID(便于排查)。示例:X-Request-ID: 123e4567-e89b-12d3-a456-426614174000
其他有用或 CDN 专用
- X-Cache / X-Cache-Status: CDN 缓存命中信息(如 HIT/MISS)
- X-Served-By / X-Timer: 平台特定信息(Heroku、Fastly 等)
- Surrogate-Key: CDN 用的批量失效键
- Accept-Ranges: 服务器是否支持范围请求(bytes)。示例:Accept-Ranges: bytes
实战提示(简短)
- 使用 ETag + If-None-Match 或 Last-Modified + If-Modified-Since 可显著减少带宽。
- CSP、HSTS、X-Frame-Options、X-Content-Type-Options 是提升网页安全性的核心响应头。
- CORS 头必须在预检响应(OPTIONS)与实际响应中正确返回。
- 在生产环境减少 Server / X-Powered-By 等信息暴露,避免泄露细节。
- 对于敏感 cookie 使用 Secure、HttpOnly、SameSite=strict 或 Lax。
结语
- 上述为常见与实用的 HTTP 响应头(含安全、缓存、跨域、性能、代理等类别)。根据具体业务与部署(静态站点、API、CDN、反向代理),会用到不同子集。需要示例或某类头的更详细配置可继续指定。