Sec-Fetch-Mode 标头

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上运行。自 2023 年 3 月以来,它已在各种浏览器中可用。

HTTP Sec-Fetch-Mode 获取元数据请求标头指示请求的模式

广义地说,这允许服务器区分源自用户在 HTML 页面之间导航的请求,以及加载图像和其他资源的请求。例如,对于顶级导航请求,此标头将包含 navigate,而 no-cors 用于加载图像。

头类型 Fetch 元数据请求头
禁止请求头 是 (Sec- 前缀)
CORS 安全列表请求头

语法

http
Sec-Fetch-Mode: cors
Sec-Fetch-Mode: navigate
Sec-Fetch-Mode: no-cors
Sec-Fetch-Mode: same-origin
Sec-Fetch-Mode: websocket

如果此标头包含任何其他值,服务器应忽略它。

指令

注意:这些指令对应于 Request.mode 中的值。

cors

该请求是 CORS 协议请求。

该请求由 HTML 文档之间的导航发起。

no-cors

该请求是一个无 CORS 请求(请参阅 Request.mode)。

same-origin

该请求来自与正在请求的资源相同的来源。

websocket

该请求正在用于建立 WebSocket 连接。

示例

使用 Sec-Fetch-Mode

如果用户点击页面链接到同一来源上的另一个页面,则生成的请求将具有以下标头(请注意模式为 navigate

http
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1

<img> 元素生成的跨站点请求将导致请求具有以下 HTTP 请求标头(请注意模式为 no-cors

http
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

规范

规范
Fetch 元数据请求头
# sec-fetch-mode-header

浏览器兼容性

另见