请求头是客户端向服务器发送请求时附带的关键信息,用于传递请求的元数据,常见的请求头包含host 目标域名或IP,User-Agent说明客户端的信息,使用什么浏览器进行访问的,Content-Length 请求数据的长度,Cookie请求中携带的Cookie信息,Authorization处理用户的认证,Accept-Encoding和Accept-Language涉及内容协商和国际化,Cache-Control和If-Modified-Since这对性能优化很重要等等。
含义:目标服务器的域名和端口号。
用途:HTTP/1.1 要求必须包含此字段,用于区分同一IP上的多个虚拟主机。
示例:Host: www.example.com:8080
含义:客户端(浏览器、应用等)的类型、版本和操作系统信息。
用途:服务器可根据此字段返回适配的内容(如移动端/PC端页面)。
示例:User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/91.0.4472.124
含义:客户端可接受的响应内容类型(MIME类型)。
用途:内容协商(如优先返回JSON或XML)。
示例:Accept: text/html, application/json
含义:客户端支持的压缩算法(如gzip、deflate)。
用途:服务器可选择压缩响应以节省带宽。
示例:Accept-Encoding: gzip, deflate, br
含义:客户端优先接受的自然语言(如中文、英文)。
用途:服务器返回对应语言的页面。
示例:Accept-Language: zh-CN, en-US;q=0.9
含义:控制是否保持长连接(HTTP Keep-Alive)。
示例:
保持连接:Connection: keep-alive
关闭连接:Connection: close
含义:控制缓存行为(如是否缓存、缓存时间)。
示例:
不缓存:Cache-Control: no-cache
最大缓存时间:Cache-Control: max-age=3600
含义:资源上次修改时间(与服务器资源对比,决定是否返回新内容)。
用途:减少重复传输(若未修改,返回 304 Not Modified)。
示例:If-Modified-Since: Wed, 21 Oct 2022 07:28:00 GMT
含义:携带认证凭证(如Bearer Token、Basic认证)。
示例:
Basic认证:Authorization: Basic base64(username:password)
JWT:Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
含义:客户端存储的会话信息(由服务器通过 Set-Cookie 响应头设置)。
示例:Cookie: sessionId=abc123; theme=dark
含义:请求体的数据类型(仅用于POST/PUT等携带Body的请求)。
示例:
JSON数据:Content-Type: application/json
表单提交:Content-Type: application/x-www-form-urlencoded
含义:请求体的字节长度。
示例:Content-Length: 348
含义:请求体使用的压缩算法(如客户端压缩数据)。
示例:Content-Encoding: gzip
含义:请求的来源域名(用于CORS跨域请求)。
示例:Origin: https://www.example.com
含义:当前请求的来源页面的URL。
用途:防盗链、统计分析。
示例:Referer: https://www.example.com/home
含义:客户端希望将HTTP资源自动升级为HTTPS(安全请求)。
示例:Upgrade-Insecure-Requests: 1
含义:请求部分内容(用于断点续传或分片下载)。
示例:Range: bytes=0-499(请求前500字节)。
含义:客户端请求不追踪用户行为(隐私保护)。
示例:DNT: 1
HTTP请求头帮助客户端与服务器高效交互,传递上下文信息(如认证、缓存、内容偏好等)。实际开发中需根据场景选择合适的头字段,例如:
缓存优化:Cache-Control、If-Modified-Since
跨域请求:Origin、Access-Control-Request-Headers
数据压缩:Accept-Encoding
安全认证:Authorization、Cookie
#POST 请求示例
POST /api/data HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 ...
Content-Type: application/json
Content-Length: 34
{
"key": "value"
}
#GET请求示例
GET/page.html
GET /page.html HTTP/1.1
Host: www.example.com
Accept: text/html
Referer: https://www.referrer.com
Cookie: session_id=abc123
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。