HTTP 协议常见字段(请求头/响应头)
HTTP(HyperText Transfer Protocol)协议通过 请求头(Request Headers) 和 响应头(Response Headers) 传递元数据。以下是 最常见的 HTTP 字段 及其作用:
1. 通用字段(请求和响应均可使用)
字段名 | 作用 | 示例值 |
---|---|---|
Cache-Control | 控制缓存行为(如是否缓存、缓存时间)。 | max-age=3600 (缓存1小时) |
Connection | 管理连接状态(如 keep-alive 保持长连接)。 | keep-alive |
Content-Type | 指定请求/响应体的数据类型(MIME类型)。 | application/json |
Content-Length | 表示请求/响应体的字节长度。 | 1024 |
Date | 消息发送的日期和时间。 | Tue, 15 Nov 2022 08:12:31 GMT |
2. 请求头(Request Headers)
字段名 | 作用 | 示例值 |
---|---|---|
Host | 指定目标服务器的主机和端口(HTTP/1.1 必需字段)。 | www.example.com |
User-Agent | 标识客户端(浏览器、爬虫等)的类型和版本。 | Mozilla/5.0 (Windows NT 10.0) |
Accept | 声明客户端可处理的响应数据类型(如 text/html )。 | text/html, application/xml |
Accept-Language | 声明客户端优先接收的语言。 | en-US, zh-CN |
Authorization | 携带认证信息(如 Bearer Token、Basic Auth)。 | Bearer xxxxxx |
Cookie | 发送服务器设置的 Cookie 数据。 | sessionId=abc123 |
Referer | 表示当前请求的来源页面(用于防盗链或分析流量)。 | https://www.google.com |
3. 响应头(Response Headers)
字段名 | 作用 | 示例值 |
---|---|---|
Server | 标识服务器软件(如 Nginx、Apache)。 | nginx/1.18.0 |
Set-Cookie | 服务器向客户端设置 Cookie。 | sessionId=abc123; Path=/ |
Location | 重定向目标 URL(状态码为 3xx 时使用)。 | https://new.example.com |
Access-Control-Allow-Origin | 指定允许跨域请求的源(CORS 相关)。 | * (允许所有域名) |
ETag | 资源的唯一标识符(用于缓存验证)。 | "33a64df5" |
Last-Modified | 资源最后修改时间(与 If-Modified-Since 配合缓存)。 | Tue, 15 Nov 2022 08:00:00 GMT |
4. 示例 HTTP 请求与响应
HTTP 请求示例
GET /api/data HTTP/1.1 Host: www.example.com User-Agent: Mozilla/5.0 Accept: application/json Authorization: Bearer xyz123 Cache-Control: no-cache
HTTP 响应示例
HTTP/1.1 200 OK Server: nginx/1.18.0 Content-Type: application/json Content-Length: 128 ETag: "33a64df5" Set-Cookie: sessionId=abc123; Path=/; HttpOnly
5. 关键字段解析
(1) Cache-Control
常见指令
指令 | 作用 |
---|---|
no-cache | 强制向服务器验证缓存是否有效。 |
no-store | 禁止缓存(用于敏感数据)。 |
max-age=3600 | 缓存有效期(秒)。 |
(2) Content-Type
常见 MIME 类型
类型 | 用途 |
---|---|
text/html | HTML 网页 |
application/json | JSON 数据 |
multipart/form-data | 文件上传表单 |
(3) CORS 相关字段
字段名 | 作用 |
---|---|
Access-Control-Allow-Origin | 允许跨域的源域名。 |
Access-Control-Allow-Methods | 允许的 HTTP 方法(如 GET, POST )。 |
6. 总结
通用字段:
Cache-Control
、Content-Type
、Connection
。请求头:
Host
、User-Agent
、Cookie
、Authorization
。响应头:
Set-Cookie
、Location
、ETag
、Server
。高频场景:
缓存控制 →
Cache-Control
、ETag
。身份认证 →
Authorization
、Cookie
。跨域处理 →
Access-Control-Allow-Origin
。
掌握这些字段能高效调试 HTTP 请求(如用 Chrome DevTools 或 curl -v
)