跳到主要内容

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 内容。

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 渲染引擎。