HTTP 请求头(HTTP request headers)是附加在 HTTP 请求中的键值对,用于向服务器传递关于客户端、请求本身以及所请求资源的额外信息。以下是一些常用的 HTTP 请求头及其功能说明:
通用头(General Headers)
-
Host:指定请求资源的主机和端口。对于虚拟主机非常重要。
Host: www.example.com -
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 -
Accept:指定客户端能够处理的内容类型,如
text/html、application/json等。服务器使用该信息来确定适当的响应内容类型。Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 -
Accept-Language:指定客户端首选的语言,用于内容协商。
Accept-Language: en-US,en;q=0.5 -
Accept-Encoding:指定客户端能够处理的内容编码(压缩算法),如
gzip、deflate。Accept-Encoding: gzip, deflate, br -
Connection:控制连接的处理方式。
keep-alive表示客户端希望保持连接打开,以进行后续请求。Connection: keep-alive
请求头(Request Headers)
-
Authorization:包含用于验证客户端身份的凭据,通常用于携带令牌或基本身份验证信息。
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== -
Content-Type:指定请求体的媒体类型,通常用于
POST或PUT请求。例如,提交表单数据时常用application/x-www-form-urlencoded,提交 JSON 数据时常用application/json。Content-Type: application/json -
Content-Length:指定请求体的字节长度。
Content-Length: 348 -
Cookie:包含发送到服务器的所有 Cookie 信息。常用于会话管理和用户跟踪。
Cookie: sessionId=abc123; username=john_doe
安全相关的头(Security Headers)
-
Referer(注意拼写):告诉服务器请求的来源页面 URL。服务器可以根据这个头部进行引用检查或统计分析。
Referer: https://www.example.com/previous-page -
Origin:标识发起跨域请求的来源。常用于 CORS 请求中,以确定请求的合法性。
Origin: https://www.example.com
条件请求头(Conditional Headers)
-
If-Modified-Since:只有在指定日期之后修改过的资源才会被返回。用于缓存控制和条件请求。
If-Modified-Since: Wed, 21 Oct 2020 07:28:00 GMT -
If-None-Match:只有在 ETag 不匹配的情况下,服务器才会返回资源。用于缓存控制和条件请求。
If-None-Match: "686897696a7c876b7e"
客户端提示头(Client Hints)
-
DNT(Do Not Track):表示用户是否不希望被追踪。
1表示用户不希望被追踪,0表示用户允许追踪。DNT: 1 -
Upgrade-Insecure-Requests:指示客户端可以处理从 HTTP 升级到 HTTPS 的请求。
Upgrade-Insecure-Requests: 1 -
Sec-Fetch-Site:指示请求的发起者是同源、跨站、同站还是无来源。
Sec-Fetch-Site: same-origin -
Sec-Fetch-Mode:指示请求的模式,如
navigate、no-cors、cors、same-origin。Sec-Fetch-Mode: navigate -
Sec-Fetch-Dest:指示请求的目标,如
document、iframe、image、style、script。Sec-Fetch-Dest: document
自定义头(Custom Headers)
开发者可以定义和使用自定义头部来传递特定应用需求的信息。自定义头通常以 X- 前缀开始(虽然这种命名方式已经逐渐被弃用):
X-Custom-Header: customValue
总结
HTTP 请求头在客户端和服务器之间传递关键信息,确保请求和响应的正确处理。了解这些常用请求头,有助于开发和调试 Web 应用,提高与服务器的交互效率和安全性。