此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Sec-Fetch-Dest
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2023年3月.
* Some parts of this feature may have varying levels of support.
Sec-Fetch-DestFetch 元数据请求标头指示请求的目标,即数据的来源以及如何使用这些获取到的数据。
这允许服务器根据请求是否采用了适当的使用方式来确定是否为请求提供服务。例如,具有audio 目标的请求应请求音频数据,而不是其他类型的资源(例如,包含敏感用户信息的文档)。
| 标头类型 | Fetch 元数据请求标头 |
|---|---|
| 禁止修改的消息首部 | 是(带有Sec- 前缀) |
| CORS-safelisted request header | 否 |
In this article
语法
Sec-Fetch-Dest: audioSec-Fetch-Dest: audioworkletSec-Fetch-Dest: documentSec-Fetch-Dest: embedSec-Fetch-Dest: emptySec-Fetch-Dest: fontSec-Fetch-Dest: frameSec-Fetch-Dest: iframeSec-Fetch-Dest: imageSec-Fetch-Dest: manifestSec-Fetch-Dest: objectSec-Fetch-Dest: paintworkletSec-Fetch-Dest: reportSec-Fetch-Dest: scriptSec-Fetch-Dest: serviceworkerSec-Fetch-Dest: sharedworkerSec-Fetch-Dest: styleSec-Fetch-Dest: trackSec-Fetch-Dest: videoSec-Fetch-Dest: workerSec-Fetch-Dest: xslt如果此标头包含任何其他的值,服务器应忽略它。
指令
备注:这些指令对应于Request.destination 返回的值。
audio目标是音频数据。这可能源自 HTML
<audio>标签。audioworklet目标是获取供 audio worklet 使用的数据。这可能源于对
audioWorklet.addModule()的调用。document目标是文档(HTML 或 XML),请求是用户发起的顶级导航的结果(例如,由用户单击链接产生)。
embed目标是嵌入内容。这可能源自 HTML
<embed>标签。empty目标是空字符串。这用于没有自己值的目标。例如:
fetch()、navigator.sendBeacon()、EventSource、XMLHttpRequest、WebSocket等等。font目标是字体。这可能源自 CSS
@font-face。frame目标是 frame。这可能源自 HTML
<frame>标签。iframe目标是 iframe。这可能源自 HTML
<iframe>标签。image目标是图片。这可能源自 HTML
<image>、SVG<image>、CSSbackground-image、CSScursor、CSSlist-style-image等等。manifest目标是 mainfest。这可能源自 HTML<link rel=manifest>。
object目标是对象,这可能源自
<object>标签。paintworklet目标是 paint worklet。这可能源自对
CSS.PaintWorklet.addModule()的调用。report目标是报告(如一份内容安全策略报告)。
script目标是一个脚本。这可能源自 HTML
<script>标签或对WorkerGlobalScope.importScripts()的调用。serviceworker目标是 service worker。这可能源于对
navigator.serviceWorker.register()的调用。sharedworker目标是 shared worker。这可能源自
SharedWorker。style目标是 style。这可能源自 HTML<link rel=stylesheet> 或者 CSS
@import。track目标是 HTML text track。这可能源自 HTML
<track>标签。video目标是视频数据。这可能源自于
<video>标签。worker目标是
Worker。xslt目标是 XSLT 转换。
示例
<img> 元素生成的跨域请求将具有以下的 HTTP 请求标头(请注意,目标是image):
Sec-Fetch-Dest: imageSec-Fetch-Mode: no-corsSec-Fetch-Site: cross-site规范
| Specification |
|---|
| Fetch Metadata Request Headers> # sec-fetch-dest-header> |
浏览器兼容性
参见
相关的标头
使用 Fetch 元数据使你的资源免受 Web 攻击(web.developers.google.cn)
Fetch 元数据请求标头 playground(secmetadata.appspot.com)