HTTP 请求头详解
Accept
客户端能够接受的响应内容类型
Accept: application/json, text/plain, */*
application/json 表示客户端能够接受 JSON 格式的响应。
text/plain 表示客户端能够接受纯文本格式的响应。
/ 表示客户端能够接受任何类型的响应,包括图像、音频、视频等。
Accept-Encoding
指定了客户端所能接受的内容编码方式
Accept-Encoding: gzip, deflate, br
Gzip 是一种广泛应用于 Web 开发中的高效压缩算法,支持多数浏览器和 Web 服务器。
Deflate 也是常见的压缩算法,在某些情况下压缩效果优于 Gzip,但可能会因浏览器缺陷导致解压缩错误。
Brotli 作为一种新型压缩算法,相较于 Gzip 和 Deflate 具有更高的压缩率和更快的解压缩速度,但在部分老旧浏览器上可能不被支持。
Accept-Language
客户端所能接受的语言类型和优先级
Accept-Language: zh-CN,zh;q=0.9
"zh-CN" 表示客户端首选的语言为简体中文,区域为中国。
"zh" 表示客户端还可以接受所有中文语言变体(包括简体中文、繁体中文等),未指定具体区域。
;q=0.9 表示语言的相对优先级,范围从 0 到 1,默认为 1。
Accept-Language: zh-CN;q=1
表示客户端仅接受简体中文。如果服务器不支持简体中文,应返回 406 - Not Acceptable。
Cache-Control
当 Cache-Control 出现在请求头时,指示服务器如何缓存响应的数据。
当 Cache-Control 出现在响应头时,指示客户端如何缓存响应的数据。
Connection
请求头和响应头中的 Connection 字段用于维护长连接。
Connection: keep-alive
在请求头中设置 Connection 为 keep-alive,表示客户端希望保持长连接。
在响应头中设置 Connection 为 keep-alive,表示服务器同意保持该 TCP 连接打开,可用于后续请求。
Content-Length
该字段在请求头和响应头中均存在,用于指示实体主体的长度,以字节为单位。
Content-Length: 392
在 HTTP 通信中,Content-Length 确保数据的完整性和准确性。若未指定 Content-Length,HTTP 消息无法确定结束位置,需采用其他方式结束消息,如关闭连接或使用 chunked 传输编码。
Content-Type
指示 HTTP 消息中传输的实体主体类型及编码方式。
Content-Type: application/x-www-form-urlencoded
通常用于表单数据的编码。
Cookie
表示请求中包含的 Cookie 内容。
Host
客户端希望访问的目标主机。
Origin
指示请求来源的网站。
Origin: https://www.baidu.com:31111
Pragma
HTTP 请求头部 "Pragma" 通常用于控制 HTTP/1.0 的缓存,在 HTTP/1.1 中,Cache-Control: no-cache 具有相同功能。
Pragma: no-cache
表示客户端不应缓存该请求,或服务器应避免使用缓存响应请求。
Referer
请求头 "Referer" 指发起请求的文档来源地址,告知服务器请求来源的 URL。
Referer: https://mpftest.21vianet.com:31111/h5-saas-manage-console/
sec-ch-ua
浏览器发送的请求头字段,用于标识浏览器的品牌和版本。
sec-ch-ua: "Google Chrome";v="93", " Not;A Brand";v="99", "Chromium";v="93"
表示浏览器运行在 Google Chrome 93、Not a Brand 99 和 Chromium 93 上。
sec-ch-ua-mobile
指示客户端设备是否为移动设备。
sec-ch-ua-mobile: ?0
?0 表示当前设备非移动设备。
sec-ch-ua-platform
指示客户端设备的操作系统平台。
sec-ch-ua-platform: "Windows"
"Windows" 表示客户端设备运行在 Windows 操作系统上。
Sec-Fetch-Dest
表示浏览器请求资源的用途。
Sec-Fetch-Dest: empty
empty 表示请求由脚本发起的预请求,未指定具体用途。
其他可能的取值包括:
document 用于网页文档如 HTML 页面或 iframe。
script 用于 JavaScript 脚本。
style 用于 CSS 样式表。
image 用于图像资源。
audio 用于音频资源。
video 用于视频资源。
manifest 用于 Web 应用程序清单文件。
font 用于字体文件。
iframe 用于嵌入另一个页面的 iframe。
Sec-Fetch-Mode
指示浏览器请求资源时使用的模式。
Sec-Fetch-Mode: cors
cors 表示使用 CORS 机制获取资源。
其他取值包括:
navigate 用于导航请求。
no-cors 用于禁用 CORS,通常请求同源资源。
same-origin 表示请求符合同源策略,仅向同源网址发送请求。
websocket 用于发送 WebSocket 请求。
Sec-Fetch-Site
指示资源请求与当前页面源的关系。
Sec-Fetch-Site: same-origin
same-origin 表示请求与当前页面源相同,即同源策略。
其他取值包括:
cross-site 表示请求可能包含跨站点信息,未经用户允许。
same-site 表示请求不包含跨站点信息。
User-Agent
表示请求客户端的浏览器、渲染引擎及操作系统信息。
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
该示例表示请求来自运行在 Windows 10 64 位版本上的 Chrome 112.0.0.0 浏览器,使用 WebKit 渲染引擎。