以下是HTTP协议中所有核心请求头(Request Headers)和响应头(Response Headers)的详细说明,包括作用、示例和应用场景。内容综合自权威技术文档和最佳实践,按功能分类整理:
📩 一、HTTP请求头(Request Headers)
1. 基础标识类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Host |
指定目标服务器域名和端口 | Host: www.example.com:8080 |
HTTP/1.1必填字段,用于虚拟主机区分 |
User-Agent |
标识客户端类型和版本 | User-Agent: Mozilla/5.0 (Windows NT 10.0...) |
服务器适配内容(如移动端/PC端页面) |
Accept |
声明客户端支持的内容类型 | Accept: text/html, application/json;q=0.9 |
内容协商(服务器按优先级返回格式) |
2. 性能优化类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Accept-Encoding |
声明支持的压缩算法 | Accept-Encoding: gzip, deflate |
服务器压缩响应体(节省带宽) |
Accept-Language |
声明首选语言 | Accept-Language: zh-CN, en-US;q=0.8 |
国际化(返回对应语言页面) |
Cache-Control |
控制缓存行为 | Cache-Control: max-age=3600 |
减少重复请求(如max-age定义缓存有效期) |
If-Modified-Since |
资源修改时间验证 | If-Modified-Since: Wed, 21 Oct 2024... |
配合Last-Modified返回304(未修改时用缓存) |
If-None-Match |
ETag验证 | If-None-Match: "686897696a7c" |
优先于时间戳的缓存验证(精度更高) |
3. 安全与会话类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Authorization |
携带身份凭证 | Authorization: Bearer eyJhbGci... |
API鉴权(Basic Auth/JWT) |
Cookie |
发送客户端存储的会话信息 | Cookie: sessionId=abc123; theme=dark |
用户状态保持(如登录态) |
Referer |
声明请求来源页面 | Referer: https://www.example.com/home |
防盗链、流量分析 |
Origin |
声明跨域请求来源 | Origin: https://www.example.com |
CORS跨域安全校验 |
4. 请求体控制类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Content-Type |
指定请求体格式 | Content-Type: application/json |
POST/PUT请求(如JSON提交) |
Content-Length |
声明请求体大小 | Content-Length: 348 |
确保服务器正确读取请求体 |
Range |
请求部分内容 | Range: bytes=0-1023 |
大文件分片下载/断点续传 |
📥 二、HTTP响应头(Response Headers)
1. 内容描述类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Content-Type |
声明响应体格式 | Content-Type: text/html; charset=utf-8 |
浏览器按类型解析(如HTML渲染) |
Content-Length |
声明响应体大小 | Content-Length: 1234 |
客户端校验数据完整性 |
Content-Encoding |
声明压缩算法 | Content-Encoding: gzip |
通知客户端解压方式 |
2. 缓存控制类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Cache-Control |
定义缓存策略 | Cache-Control: public, max-age=3600 |
控制CDN/浏览器缓存行为 |
ETag |
资源版本标识符 | ETag: "686897696a7c" |
配合If-None-Match实现协商缓存 |
Last-Modified |
资源最后修改时间 | Last-Modified: Wed, 21 Oct 2024... |
配合If-Modified-Since验证缓存 |
Expires |
定义缓存过期时间 | Expires: Tue, 20 Oct 2025 16:00:00 GMT |
HTTP/1.0遗留字段(优先级低于Cache-Control) |
3. 行为控制类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Location |
重定向目标URL | Location: /new-page |
3xx状态码跳转(如301永久重定向) |
Set-Cookie |
设置客户端Cookie | Set-Cookie: sessionId=abc123; HttpOnly |
会话管理(HttpOnly防XSS攻击) |
Content-Disposition |
控制资源处理方式 | Content-Disposition: attachment; filename="file.pdf" |
强制文件下载(而非浏览器预览) |
4. 安全防护类
| 字段 | 作用 | 示例 | 应用场景 |
|---|---|---|---|
Access-Control-Allow-Origin |
跨域资源访问控制 | Access-Control-Allow-Origin: * |
CORS跨域权限(*允许所有域) |
Strict-Transport-Security |
强制HTTPS | Strict-Transport-Security: max-age=31536000 |
防止SSL剥离攻击(HSTS策略) |
X-Content-Type-Options |
禁用MIME嗅探 | X-Content-Type-Options: nosniff |
阻止浏览器猜测内容类型(防XSS) |
⚙️ 三、自定义头(Custom Headers)
常见场景与规范
-
命名规范:弃用
X-前缀,改用业务相关名称(如App-Version: 2.0)
应用场景
-
前端传递设备信息:
Device-ID: abc123 -
后端返回调试标识:
Debug-Trace: 0a1b2c3d -
API版本控制:
Api-Version: v2 -
安全限制:跨域请求时,自定义头需在
Access-Control-Allow-Headers中显式声明
💎 四、核心应用场景总结
性能优化组合
- 缓存控制:
Cache-Control+ETag(减少数据传输) - 压缩传输:
Accept-Encoding: gzip+Content-Encoding: gzip(节省带宽)
安全防护组合
- 跨域安全:
Origin(请求) +Access-Control-Allow-Origin(响应) - 会话安全:
Cookie(请求) +Set-Cookie; HttpOnly; Secure(响应)
内容协商组合
- 语言适配:
Accept-Language(请求) → 服务器返回对应语言资源 - 格式适配:
Accept: application/json(请求) →Content-Type: application/json(响应)
完整HTTP头字段列表可参考 MDN官方文档。实际开发中建议使用工具(如Chrome DevTools)实时查看请求/响应头交互细节。