HTTP 请求头完全指南
2025年2月27日大约 3 分钟
HTTP 请求头完全指南
HTTP请求头(Headers)是HTTP请求和响应中的重要组成部分,它们携带了关于请求或响应的元数据信息。下面我们详细介绍常用的HTTP请求头及其作用。
使用建议
- 根据实际需求选择合适的请求头
- 注意请求头的大小写(虽然不区分大小写,但建议保持一致性)
- 安全相关的请求头要谨慎使用,避免敏感信息泄露
- 缓存相关的请求头要根据业务需求合理配置
- 在跨域请求中特别注意Origin和CORS相关的请求头
内容协商相关
Content-Type
指定请求或响应体的媒体类型(MIME type)。这是一个非常重要的请求头,用于告诉服务器发送的数据类型。
常见的值包括:
application/json
:JSON格式数据application/x-www-form-urlencoded
:表单数据multipart/form-data
:文件上传text/html
:HTML文档text/plain
:纯文本
Accept
指定客户端能够接收的内容类型。服务器会根据这个头部返回最适合的内容类型。例如:
Accept: application/json, text/plain, */*
Accept-Encoding
告诉服务器客户端支持的内容编码方式,主要用于压缩算法的协商。常见值:
- gzip
- deflate
- br (Brotli压缩)
认证和安全相关
Authorization
用于发送身份验证凭据。常见格式:
Authorization: Bearer <token>
Authorization: Basic <credentials>
Origin
指定请求的来源(协议、主机名和端口)。这在CORS(跨源资源共享)中特别重要,用于控制跨域访问。
缓存控制
Cache-Control
控制客户端和服务器的缓存行为。主要指令包括:
no-cache
:必须先与服务器确认返回的响应是否被更改no-store
:不缓存任何内容must-revalidate
:缓存必须在使用前验证旧资源的状态max-age=<seconds>
:响应最大的有效时间
Cookie相关
Cookie
向服务器发送存储在客户端的Cookie信息。用于:
- 会话管理
- 个性化设置
- 用户跟踪
Set-Cookie
服务器向客户端发送Cookie。格式示例:
Set-Cookie: name=value; expires=Date; path=/; domain=.example.com; secure; httponly
请求上下文信息
User-Agent
标识发起请求的客户端软件(浏览器、操作系统等)的信息。例如:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Host
指定服务器的域名和端口号。这是HTTP/1.1中唯一必须包含的请求头。格式:
Host: www.example.com:8080
Referer
指示请求来源页面的URL,用于:
- 跟踪用户来源
- 防盗链
- 统计分析
AJAX和网络连接
X-Requested-With
主要用于标识AJAX请求,常见值:
X-Requested-With: XMLHttpRequest
Connection
控制网络连接的持久性,常用值:
keep-alive
:保持连接活跃close
:请求完成后关闭连接
代理和转发
X-Forwarded-For
记录请求经过的代理服务器IP地址链。格式:
X-Forwarded-For: client, proxy1, proxy2
一些废话
- API开发时明确文档化所需的请求头
- 对关键请求头进行验证
- 合理使用缓存控制提升性能
- 注意请求头的安全性配置
- 在调试时关注请求头信息