diff --git a/files/zh-cn/_redirects.txt b/files/zh-cn/_redirects.txt index 1380fbf848ab74..e2138bb4b30088 100644 --- a/files/zh-cn/_redirects.txt +++ b/files/zh-cn/_redirects.txt @@ -1903,7 +1903,7 @@ /zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/caches /zh-CN/docs/Web/API/Window/caches /zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /zh-CN/docs/Web/API/clearInterval /zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout /zh-CN/docs/Web/API/clearTimeout -/zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap /zh-CN/docs/Web/API/createImageBitmap +/zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap /zh-CN/docs/Web/API/Window/createImageBitmap /zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/crossOriginIsolated /zh-CN/docs/Web/API/Window/crossOriginIsolated /zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/fetch /zh-CN/docs/Web/API/Window/fetch /zh-CN/docs/Web/API/WindowOrWorkerGlobalScope/indexedDB /zh-CN/docs/Web/API/Window/indexedDB @@ -1961,6 +1961,7 @@ /zh-CN/docs/Web/API/console/timeStamp /zh-CN/docs/Web/API/console/timeStamp_static /zh-CN/docs/Web/API/console/trace /zh-CN/docs/Web/API/console/trace_static /zh-CN/docs/Web/API/console/warn /zh-CN/docs/Web/API/console/warn_static +/zh-CN/docs/Web/API/createImageBitmap /zh-CN/docs/Web/API/Window/createImageBitmap /zh-CN/docs/Web/API/crossOriginIsolated /zh-CN/docs/Web/API/Window/crossOriginIsolated /zh-CN/docs/Web/API/crypto_property /zh-CN/docs/Web/API/Window/crypto /zh-CN/docs/Web/API/document.URL /zh-CN/docs/Web/API/Document/URL @@ -2426,10 +2427,14 @@ /zh-CN/docs/Web/HTML/动作 /zh-CN/docs/Glossary/Speculative_parsing /zh-CN/docs/Web/HTML/属性 /zh-CN/docs/Web/HTML/Attributes /zh-CN/docs/Web/HTTP/Access_control_CORS /zh-CN/docs/Web/HTTP/CORS +/zh-CN/docs/Web/HTTP/Basics_of_HTTP /zh-CN/docs/Web/HTTP /zh-CN/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs /zh-CN/docs/Web/URI/Authority/Choosing_between_www_and_non-www_URLs /zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs /zh-CN/docs/Web/URI/Schemes/data /zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URLs /zh-CN/docs/Web/URI/Schemes/data -/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types /zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types +/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP /zh-CN/docs/Web/HTTP/Evolution_of_HTTP +/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types /zh-CN/docs/Web/HTTP/MIME_types +/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types /zh-CN/docs/Web/HTTP/MIME_types/Common_types +/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types /zh-CN/docs/Web/HTTP/MIME_types/Common_types /zh-CN/docs/Web/HTTP/Basics_of_HTTP/选择_www_或非_www_URL_作为域名 /zh-CN/docs/Web/URI/Authority/Choosing_between_www_and_non-www_URLs /zh-CN/docs/Web/HTTP/CORS/Errors/CORS错误允许凭证 /zh-CN/docs/Web/HTTP/CORS/Errors/CORSMIssingAllowCredentials /zh-CN/docs/Web/HTTP/Caching_FAQ /zh-CN/docs/Web/HTTP/Caching @@ -2465,7 +2470,7 @@ /zh-CN/docs/Web/HTTP/Link_prefetching_FAQ /zh-CN/docs/Glossary/Prefetch /zh-CN/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file /zh-CN/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file /zh-CN/docs/Web/HTTP/Public_Key_Pinning /zh-CN/docs/Web/Security/Certificate_Transparency -/zh-CN/docs/Web/HTTP/Resources_and_URIs /zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types +/zh-CN/docs/Web/HTTP/Resources_and_URIs /zh-CN/docs/Web/HTTP/MIME_types /zh-CN/docs/Web/HTTP/Response_codes /zh-CN/docs/Web/HTTP/Status /zh-CN/docs/Web/HTTP/Response_codes/100 /zh-CN/docs/Web/HTTP/Status/100 /zh-CN/docs/Web/HTTP/Response_codes/204 /zh-CN/docs/Web/HTTP/Status/204 diff --git a/files/zh-cn/_wikihistory.json b/files/zh-cn/_wikihistory.json index ca036768227942..1b2e8bc5a3c0a0 100644 --- a/files/zh-cn/_wikihistory.json +++ b/files/zh-cn/_wikihistory.json @@ -15180,6 +15180,10 @@ "modified": "2020-10-15T22:30:15.212Z", "contributors": ["Jee"] }, + "Web/API/Window/createImageBitmap": { + "modified": "2019-03-18T20:44:01.174Z", + "contributors": ["fanerge", "varcat"] + }, "Web/API/Window/crossOriginIsolated": { "modified": "2020-10-15T22:26:03.129Z", "contributors": ["Fulgrim"] @@ -16267,10 +16271,6 @@ "modified": "2019-03-23T22:12:15.122Z", "contributors": ["pluwen", "choukin"] }, - "Web/API/createImageBitmap": { - "modified": "2019-03-18T20:44:01.174Z", - "contributors": ["fanerge", "varcat"] - }, "Web/API/notification": { "modified": "2020-09-28T00:03:47.900Z", "contributors": [ @@ -22375,61 +22375,6 @@ "thomastao0215" ] }, - "Web/HTTP/Basics_of_HTTP": { - "modified": "2020-05-07T23:19:31.676Z", - "contributors": [ - "Filon", - "HardcorePhysician", - "Yayure", - "695919451", - "BobGreen", - "magiclyde", - "cissoid" - ] - }, - "Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP": { - "modified": "2020-02-20T03:41:08.272Z", - "contributors": [ - "Babyfaceqian", - "XFJGitHub", - "lc-soft", - "BobGreen", - "enjolras1205", - "zihengCat", - "GuoShuai", - "Haruhi", - "huangchanghuan", - "keifergu", - "JsonLi", - "WeijieZhu" - ] - }, - "Web/HTTP/Basics_of_HTTP/MIME_types": { - "modified": "2020-11-04T00:16:29.009Z", - "contributors": [ - "lujjjh", - "andysongs", - "rascalquan", - "BobGreen", - "NewbieAndy", - "zhangchen", - "xgqfrms-GitHub", - "w11th", - "YuriTu" - ] - }, - "Web/HTTP/Basics_of_HTTP/MIME_types/Common_types": { - "modified": "2020-02-28T13:11:23.222Z", - "contributors": [ - "chrisdavidmills", - "RainSlide", - "qq58553442", - "sam-dingkang", - "xgqfrms-GitHub", - "choury", - "pasturn" - ] - }, "Web/HTTP/Browser_detection_using_the_user_agent": { "modified": "2019-03-23T22:26:23.825Z", "contributors": ["xgqfrms-GitHub", "konrumi", "Leogh", "jianyi1995"] @@ -22655,6 +22600,23 @@ "charlie" ] }, + "Web/HTTP/Evolution_of_HTTP": { + "modified": "2020-02-20T03:41:08.272Z", + "contributors": [ + "Babyfaceqian", + "XFJGitHub", + "lc-soft", + "BobGreen", + "enjolras1205", + "zihengCat", + "GuoShuai", + "Haruhi", + "huangchanghuan", + "keifergu", + "JsonLi", + "WeijieZhu" + ] + }, "Web/HTTP/Headers": { "modified": "2020-05-20T02:33:50.716Z", "contributors": [ @@ -23230,6 +23192,32 @@ "xgqfrms-GitHub" ] }, + "Web/HTTP/MIME_types": { + "modified": "2020-11-04T00:16:29.009Z", + "contributors": [ + "lujjjh", + "andysongs", + "rascalquan", + "BobGreen", + "NewbieAndy", + "zhangchen", + "xgqfrms-GitHub", + "w11th", + "YuriTu" + ] + }, + "Web/HTTP/MIME_types/Common_types": { + "modified": "2020-02-28T13:11:23.222Z", + "contributors": [ + "chrisdavidmills", + "RainSlide", + "qq58553442", + "sam-dingkang", + "xgqfrms-GitHub", + "choury", + "pasturn" + ] + }, "Web/HTTP/Messages": { "modified": "2020-04-19T05:44:17.609Z", "contributors": [ diff --git a/files/zh-cn/glossary/http_2/index.md b/files/zh-cn/glossary/http_2/index.md index 6d1800ef640c5e..e6d4d0ab654597 100644 --- a/files/zh-cn/glossary/http_2/index.md +++ b/files/zh-cn/glossary/http_2/index.md @@ -2,14 +2,14 @@ title: HTTP/2 slug: Glossary/HTTP_2 l10n: - sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34 + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{GlossarySidebar}} -**HTTP/2** 是 [HTTP 网络协议](/zh-CN/docs/Web/HTTP/Basics_of_HTTP)的一个主要版本。 +**HTTP/2** 是 [HTTP 网络协议](/zh-CN/docs/Web/HTTP)的一个主要版本。 -它的主要目标是通过启用完整的请求和响应多路复用来降低{{glossary("latency", "延迟")}},通过有效压缩 HTTP 标头字段来最小化协议开销,增加对请求优先级和服务器推送的支持。 +它的主要目标是通过启用完整的请求和响应多路复用来降低{{glossary("latency", "延迟")}}和队头阻塞,通过有效压缩 HTTP 标头字段来最小化协议开销,增加对请求优先级和服务器推送的支持。 HTTP/2 不会修改 HTTP 协议的语义。HTTP 1.1 中的所有核心概念(例如 HTTP 方法、状态码、URI 和标头)都得以保留。而是修改了 HTTP/2 数据在客户端和服务器之间的格式(帧)和传输方式,这两者都管理整个过程,并在新的框架层内隐藏了应用程序的复杂性。所以,所有现有的应用程序都可以不经修改地交付。 diff --git a/files/zh-cn/glossary/http_3/index.md b/files/zh-cn/glossary/http_3/index.md index 9e4cbb7a8f015b..87407baddecdb5 100644 --- a/files/zh-cn/glossary/http_3/index.md +++ b/files/zh-cn/glossary/http_3/index.md @@ -1,21 +1,21 @@ --- title: HTTP/3 slug: Glossary/HTTP_3 +l10n: + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{GlossarySidebar}} -**HTTP/3**是继{{glossary("HTTP 2", "HTTP/2")}}即将到来的[HTTP 网络协议的](/zh-CN/docs/Web/HTTP/Basics_of_HTTP)主要修订版。HTTP/3 的要点是它使用名为 QUIC 的新{{glossary("UDP")}}协议代替{{glossary("TCP")}}。 +**HTTP/3** 是继 {{glossary("HTTP 2", "HTTP/2")}} 之后的 [HTTP 网络协议](/zh-CN/docs/Web/HTTP)的主要修订版。 -## 参见 - -- 基础知识 +HTTP/3 的最大不同之处在于它使用了一种名为 QUIC 的协议(基于 {{glossary("UDP")}} 而不是 {{glossary("TCP")}})。 - - [HTTP on MDN](/zh-CN/docs/Web/HTTP) - - [HTTP/3](https://zh.wikipedia.org/wiki/HTTP/3) - -- 词汇表 +## 参见 +- [HTTP 文档](/zh-CN/docs/Web/HTTP) +- 维基百科上的 [HTTP/3](https://zh.wikipedia.org/wiki/HTTP/3) +- 相关术语: - {{glossary("HTTP")}} - {{glossary("HTTP 2")}} - {{glossary("Latency")}} diff --git a/files/zh-cn/glossary/lossy_compression/index.md b/files/zh-cn/glossary/lossy_compression/index.md index ccad67ddfc2dbb..ba42a77a4b3374 100644 --- a/files/zh-cn/glossary/lossy_compression/index.md +++ b/files/zh-cn/glossary/lossy_compression/index.md @@ -9,7 +9,7 @@ l10n: **有损压缩**,又称为不可逆压缩,是一种数据压缩方法,它使用不精确的近似值和部分数据丢弃来表示内容。简单来说:有损压缩导致原始文件中的数据丢失,可能导致质量下降。这种压缩过程是不可逆的;一旦对内容进行了有损压缩,就无法将内容恢复到原始状态。因此,经过有损压缩的内容通常不应再进一步编辑。 -有损压缩在诸如 {{glossary("JPEG")}}、{{glossary("WebP")}} 等图像格式以及音频和视频格式(如 [MP3、MP4、H.264 等](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types))中被广泛使用。像 {{glossary("WebP")}} 这样的压缩方法可以根据压缩级别或在编码过程中使用的选项进行[无损和有损压缩](https://developers.google.com/speed/webp/docs/compression)。 +有损压缩在诸如 {{glossary("JPEG")}}、{{glossary("WebP")}} 等图像格式以及音频和视频格式(如 [MP3、MP4、H.264 等](/zh-CN/docs/Web/HTTP/MIME_types/Common_types))中被广泛使用。像 {{glossary("WebP")}} 这样的压缩方法可以根据压缩级别或在编码过程中使用的选项进行[无损和有损压缩](https://developers.google.com/speed/webp/docs/compression)。 ![有损压缩的图像](2019-11-18.png) diff --git a/files/zh-cn/glossary/mime_type/index.md b/files/zh-cn/glossary/mime_type/index.md index c3687f10e255dd..f3fe2769c12b37 100644 --- a/files/zh-cn/glossary/mime_type/index.md +++ b/files/zh-cn/glossary/mime_type/index.md @@ -2,12 +2,12 @@ title: MIME 类型 slug: Glossary/MIME_type l10n: - sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34 + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{GlossarySidebar}} -**MIME 类型**(现在正式地称作“媒体类型”,但有时也被称作“内容类型”)是指示文件类型的会与文件同时发送出去的字符串,描述了内容的格式(例如,一个声音文件可能被标记为 `audio/ogg` ,一个图像文件可能是 `image/png`)。 +**MIME 类型**(现在正式地称作“媒体类型”,但有时也被称作“内容类型”)是指示文件类型的会与文件同时发送出去的字符串,描述了内容的格式(例如,一个声音文件可能被标记为 `audio/ogg`,一个图像文件可能是 `image/png`)。 它与传统 Windows 上的文件扩展名有相同目的。这个术语的名字源于最初用于电子邮件的 {{glossary("mime","MIME")}} 标准。 @@ -16,6 +16,6 @@ l10n: - 维基百科上的[互联网媒体类型](https://zh.wikipedia.org/wiki/互联网媒体类型) - [MIME 类型列表](https://www.iana.org/assignments/media-types/media-types.xhtml) - [正确配置服务器 MIME 类型](/zh-CN/docs/Learn/Server-side/Configuring_server_MIME_types) -- 有关在 Web 环境中使用 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)的详细信息。 -- [MIME 类型的不完整列表](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) +- 有关在 Web 环境中使用 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)的详细信息。 +- [MIME 类型的不完整列表](/zh-CN/docs/Web/HTTP/MIME_types/Common_types) - [MediaRecorder.mimeType](/zh-CN/docs/Web/API/MediaRecorder/mimeType) diff --git a/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md b/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md index 819d7916fbc51a..834f6e8763f984 100644 --- a/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md +++ b/files/zh-cn/learn/forms/sending_and_retrieving_form_data/index.md @@ -7,7 +7,7 @@ slug: Learn/Forms/Sending_and_retrieving_form_data 本文将讨论当用户提交表单时发生了什么——数据去了哪,以及当它到达时该如何处理?我们还研究了与发送表单数据相关的一些安全问题。 - +
@@ -16,7 +16,7 @@ slug: Learn/Forms/Sending_and_retrieving_form_data 基本计算机素养,对HTML 的理解,对HTTP,对HTTP服务器端编程的基础知识。 diff --git a/files/zh-cn/learn/getting_started_with_the_web/the_web_and_web_standards/index.md b/files/zh-cn/learn/getting_started_with_the_web/the_web_and_web_standards/index.md index dc040f6804d2b0..3ac3e2271ff96f 100644 --- a/files/zh-cn/learn/getting_started_with_the_web/the_web_and_web_standards/index.md +++ b/files/zh-cn/learn/getting_started_with_the_web/the_web_and_web_standards/index.md @@ -65,7 +65,7 @@ _唯一不变的就是变化。_ ### HTTP -超文本传输协议(Hypertext Transfer Protocol,[HTTP](/zh-CN/docs/Web/HTTP/Basics_of_HTTP)),它允许 Web 浏览器与 Web 服务器(存储网站的位置)进行通信。典型的通信就像这样 +超文本传输协议(Hypertext Transfer Protocol,[HTTP](/zh-CN/docs/Web/HTTP)),它允许 Web 浏览器与 Web 服务器(存储网站的位置)进行通信。典型的通信就像这样 ```plain "你好 Web 服务器。你可以给我用于渲染 bbc.co.uk 的文件吗?" diff --git a/files/zh-cn/mozilla/firefox/releases/65/index.md b/files/zh-cn/mozilla/firefox/releases/65/index.md index 79579fef50e787..7011828d6f92e2 100644 --- a/files/zh-cn/mozilla/firefox/releases/65/index.md +++ b/files/zh-cn/mozilla/firefox/releases/65/index.md @@ -57,9 +57,9 @@ _无变化。_ #### Service workers - The {{domxref("Response.redirect()")}} method now correctly throws a `TypeError` if a non-valid URL is specified as the first parameter ([Firefox bug 1503276](https://bugzil.la/1503276)). -- The {{domxref("ServiceWorkerContainer.register()")}} and {{domxref("WorkerGlobalScope.importScripts()")}} (when used by a service worker) methods will now accept any files with a valid [JavaScript MIME type](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types#JavaScript_types) ([Firefox bug 1354577](https://bugzil.la/1354577)). +- The {{domxref("ServiceWorkerContainer.register()")}} and {{domxref("WorkerGlobalScope.importScripts()")}} (when used by a service worker) methods will now accept any files with a valid [JavaScript MIME type](/zh-CN/docs/Web/HTTP/MIME_types#textjavascript) ([Firefox bug 1354577](https://bugzil.la/1354577)). -#### Media, Web Audio, 和 WebRTC +#### Media、Web Audio 和 WebRTC - 增加了对 [WebP](/zh-CN/docs/Glossary/webp) Google 压缩图像文件的支持 ([bug 1294490](https://bugzilla.mozilla.org/show_bug.cgi?id=1294490)) 。 diff --git a/files/zh-cn/web/api/createimagebitmap/index.md b/files/zh-cn/web/api/createimagebitmap/index.md deleted file mode 100644 index 0c4ff5eef8efa2..00000000000000 --- a/files/zh-cn/web/api/createimagebitmap/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: self.createImageBitmap() -slug: Web/API/createImageBitmap ---- - -{{APIRef("Canvas API")}} - -**`createImageBitmap`** 方法存在 windows 和 workers 中。它接受各种不同的图像来源,并返回一个{{domxref("Promise")}}, resolve 为{{domxref("ImageBitmap")}}. 可选地参数,图像被剪裁成自(sx,sy)且宽度为 sw,高度为 sh 的像素的矩形。 - -## 语法 - -```js-nolint -createImageBitmap(image) -createImageBitmap(image, options) -createImageBitmap(image, sx, sy, sw, sh) -createImageBitmap(image, sx, sy, sw, sh, options) -``` - -### 参数 - -- `image` - - : 一个图像源,可以是一个 {{HTMLElement("img")}}, SVG {{SVGElement("image")}}, {{HTMLElement("video")}}, {{HTMLElement("canvas")}}, {{domxref("HTMLImageElement")}}, {{domxref("SVGImageElement")}}, {{domxref("HTMLVideoElement")}}, {{domxref("HTMLCanvasElement")}}, {{domxref("Blob")}}, {{domxref("ImageData")}}, {{domxref("ImageBitmap")}}, 或 {{domxref("OffscreenCanvas")}} 对象。 -- `sx` - - : 裁剪点 x 坐标。 -- `sy` - - : 裁剪点 y 坐标。 -- `sw` - - : 裁剪宽度,值可为负数。 -- `sh` - - : 裁剪高度,值可为负数。 -- options {{optional_inline}} - - - : 为其设置选项的对象。可用的选项是: - - - `imageOrientation`: 指示图像是按原样呈现还是垂直翻转。`none` (默认不翻转) 或 `flipY`. - - `premultiplyAlpha`: 指示位图颜色通道由 alpha 通道预乘。选择其一:`none`, `premultiply`, 或 `default` (默认). - - `colorSpaceConversion`: 指示图像是否使用色彩空间转换进行解码。`none` 或 `default` (默认). The value `default` indicates that implementation-specific behavior is used. - - `resizeWidth`: 指示新宽度的长整数。 - - `resizeHeight`: 指示新高度的长整数。 - - `resizeQuality`: 指定图像缩放算法。选择其一`pixelated`, `low` (默认), `medium`, 或 `high`. - -### 返回值 - -返回一个解决 ImageBitmap 的{{domxref("Promise")}} ,当 Promise 成功时 resolves 接收一个包含所得到的矩形的位图数据{{domxref("ImageBitmap")}}。 - -## 示例 - -```js -var canvas = document.getElementById("myCanvas"), - ctx = canvas.getContext("2d"), - image = new Image(); - -image.onload = function () { - Promise.all([ - createImageBitmap(this, 0, 0, 32, 32), - createImageBitmap(this, 32, 0, 32, 32), - ]).then(function (sprites) { - ctx.drawImage(sprites[0], 0, 0); - ctx.drawImage(sprites[1], 32, 32); - }); -}; - -image.src = "sprites.png"; -``` - -## 规范 - -{{Specifications}} - -## 浏览器兼容性 - -{{Compat}} - -## 参见 - -- {{domxref("CanvasRenderingContext2D.drawImage()")}} -- {{domxref("ImageData")}} diff --git a/files/zh-cn/web/api/datatransferitem/type/index.md b/files/zh-cn/web/api/datatransferitem/type/index.md index 856c45cb33c44c..5016fdb19f9bc6 100644 --- a/files/zh-cn/web/api/datatransferitem/type/index.md +++ b/files/zh-cn/web/api/datatransferitem/type/index.md @@ -2,7 +2,7 @@ title: DataTransferItem:type 属性 slug: Web/API/DataTransferItem/type l10n: - sourceCommit: b5583a21df2aeaebddd7e0eeb58ff690b013546b + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{APIRef("HTML Drag and Drop API")}} @@ -59,4 +59,4 @@ function dropHandler(ev) { ## 参见 - {{domxref("DataTransfer.types()")}} -- [常见 MIME 类型列表](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) +- [常见 MIME 类型列表](/zh-CN/docs/Web/HTTP/MIME_types/Common_types) diff --git a/files/zh-cn/web/api/file/index.md b/files/zh-cn/web/api/file/index.md index 8dbaf7f9afe65e..7e3eb3a671dbbd 100644 --- a/files/zh-cn/web/api/file/index.md +++ b/files/zh-cn/web/api/file/index.md @@ -2,7 +2,7 @@ title: File slug: Web/API/File l10n: - sourceCommit: 58ad1df59f2ffb9ecab4e27fe1bdf1eb5a55f89b + sourceCommit: 58d79e9c2206e0a604cd4d7f6fba5181262af420 --- {{APIRef("File API")}}{{AvailableInWorkers}} @@ -11,7 +11,13 @@ l10n: `File` 对象通常从用户使用 {{HTMLElement("input")}} 元素选择文件返回的 {{DOMxRef("FileList")}} 对象中检索,或者从拖放操作返回的 {{DOMxRef("DataTransfer")}} 对象中检索。 -`File` 对象是一种特定类型的 {{DOMxRef("Blob")}},并且可以在 Blob 可以使用的任何上下文中使用。特别是,{{DOMxRef("FileReader")}}、{{DOMxRef("URL.createObjectURL_static", "URL.createObjectURL()")}}、{{DOMxRef("createImageBitmap()")}}、{{domxref("Window/fetch", "fetch()")}} 方法的 [`body`](/zh-CN/docs/Web/API/RequestInit#body) 选项和 {{DOMxRef("XMLHttpRequest.send()")}} 都可以接收 `Blob` 对象和 `File` 对象。 +`File` 对象是一种特定类型的 {{DOMxRef("Blob")}},并且可以在 Blob 可以使用的任何上下文中使用。特别地,以下 API 都接受 `Blob` 对象和 `File` 对象: + +- {{DOMxRef("FileReader")}} +- {{DOMxRef("URL.createObjectURL_static", "URL.createObjectURL()")}} +- {{DOMxRef("Window.createImageBitmap()")}} 和 {{DOMxRef("WorkerGlobalScope.createImageBitmap()")}} +- {{domxref("Window/fetch", "fetch()")}} 方法的 [`body`](/zh-CN/docs/Web/API/RequestInit#body) 选项 +- {{DOMxRef("XMLHttpRequest.send()")}} 参见[在 Web 应用程序使用文件](/zh-CN/docs/Web/API/File_API/Using_files_from_web_applications)了解更多信息和例子。 diff --git a/files/zh-cn/web/api/imagebitmap/index.md b/files/zh-cn/web/api/imagebitmap/index.md index 061a63f0243333..af699517edd09d 100644 --- a/files/zh-cn/web/api/imagebitmap/index.md +++ b/files/zh-cn/web/api/imagebitmap/index.md @@ -5,7 +5,7 @@ slug: Web/API/ImageBitmap {{APIRef("Canvas API")}} -**`ImageBitmap`** 接口表示能够被绘制到 {{HTMLElement("canvas")}} 上的位图图像,具有低延迟的特性。运用 {{domxref("ImageBitmapFactories.createImageBitmap", "createImageBitmap()")}} 工厂方法模式,它可以从多种源中生成。 `ImageBitmap`提供了一种异步且高资源利用率的方式来为 WebGL 的渲染准备基础结构。 +**`ImageBitmap`** 接口表示能够被绘制到 {{HTMLElement("canvas")}} 上的位图图像,具有低延迟的特性。运用 {{domxref("Window.createImageBitmap()")}} 或 {{domxref("WorkerGlobalScope.createImageBitmap()")}} 工厂方法模式,它可以从多种源中生成。`ImageBitmap` 提供了一种异步且高资源利用率的方式来为 WebGL 的渲染准备基础结构。 ## 属性 @@ -29,7 +29,8 @@ slug: Web/API/ImageBitmap ## 参见 -- {{domxref("ImageBitmapFactories.createImageBitmap()")}} +- {{domxref("Window.createImageBitmap()")}} +- {{domxref("WorkerGlobalScope.createImageBitmap()")}} - {{domxref("CanvasRenderingContext2D.drawImage()")}} - {{domxref("WebGLRenderingContext.texImage2D()")}} -- {{domxref("OffScreenCanvas.transferToImageBitmap()")}} +- {{domxref("OffscreenCanvas.transferToImageBitmap()")}} diff --git a/files/zh-cn/web/api/ndefmessage/ndefmessage/index.md b/files/zh-cn/web/api/ndefmessage/ndefmessage/index.md index 535e4c8433e730..2795916b01cdc6 100644 --- a/files/zh-cn/web/api/ndefmessage/ndefmessage/index.md +++ b/files/zh-cn/web/api/ndefmessage/ndefmessage/index.md @@ -2,7 +2,7 @@ title: NDEFMessage:NDEFMessage() 构造函数 slug: Web/API/NDEFMessage/NDEFMessage l10n: - sourceCommit: 7793383ec44ad25f522b96cda00f8a745b27d865 + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{SecureContext_Header}}{{APIRef("Web NFC API")}}{{SeeCompatTable}} @@ -30,7 +30,7 @@ new NDEFMessage(records) - `lang` {{optional_inline}} - : 根据 {{RFC(5646, "用于标识语言的标记(又称 BCP 47)")}}规定的有效语言标签。 - `mediaType` {{optional_inline}} - - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)。 + - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)。 - `recordType` - : 指示存储在 `data` 中的数据类型的字符串。必须是以下值之一: @@ -44,7 +44,7 @@ new NDEFMessage(records) - : 一个空的 {{domxref("NDEFRecord")}}。 - `"mime"` - - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)。 + - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)。 - `"smart-poster"` - : 一个由 [NDEF-SMARTPOSTER](https://w3c.github.io/web-nfc/#bib-ndef-smartposter) 规范定义的智能海报。 - `"text"` diff --git a/files/zh-cn/web/api/ndefreader/write/index.md b/files/zh-cn/web/api/ndefreader/write/index.md index 137864953edcac..217938df230c9c 100644 --- a/files/zh-cn/web/api/ndefreader/write/index.md +++ b/files/zh-cn/web/api/ndefreader/write/index.md @@ -2,7 +2,7 @@ title: NDEFReader:write() 方法 slug: Web/API/NDEFReader/write l10n: - sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{SecureContext_Header}}{{SeeCompatTable}}{{APIRef("Web NFC API")}} @@ -20,7 +20,7 @@ write(message, options) - `message` - - : 要写入的消息,可以是字符串对象或字面量、{{jsxref("ArrayBuffer")}}、{{jsxref("TypedArray")}}、{{jsxref("DataView")}},或者是记录数组。具有以下成员: + - : 要写入的消息,可以是字符串、{{jsxref("ArrayBuffer")}}、{{jsxref("TypedArray")}}、{{jsxref("DataView")}},或者是记录数组。具有以下成员: - `data` {{optional_inline}} - : 包含要传输的数据;可以是字符串、{{jsxref("ArrayBuffer")}}、{{jsxref("TypedArray")}}、{{jsxref("DataView")}} 或嵌套记录数组之一。 @@ -31,7 +31,7 @@ write(message, options) - `lang` {{optional_inline}} - : 根据 {{RFC(5646, "用于标识语言的标记(又称 BCP 47)")}}规定的有效语言标签。 - `mediaType` {{optional_inline}} - - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)。 + - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)。 - `recordType` - : 指示存储在 `data` 中的数据类型的字符串。必须是以下值之一: @@ -41,7 +41,7 @@ write(message, options) - `"empty"` - : 一个空的 {{domxref("NDEFRecord")}}。 - `"mime"` - - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)。 + - : 有效的 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)。 - `"smart-poster"` - : 一个由 [NDEF-SMARTPOSTER](https://w3c.github.io/web-nfc/#bib-ndef-smartposter) 规范定义的智能海报。 - `"text"` @@ -64,7 +64,7 @@ write(message, options) 一个 {{JSxRef("Promise")}},当消息成功写入标签时兑现,或者在遇到硬件或权限错误时拒绝。 -## 异常 +### 异常 此方法不抛出异常;相反,它会拒绝返回的 promise,并传入一个 {{domxref("DOMException")}},其 `name` 属性是以下值之一: diff --git a/files/zh-cn/web/api/web_workers_api/functions_and_classes_available_to_workers/index.md b/files/zh-cn/web/api/web_workers_api/functions_and_classes_available_to_workers/index.md index 72c1641884a944..ae18d47456d88b 100644 --- a/files/zh-cn/web/api/web_workers_api/functions_and_classes_available_to_workers/index.md +++ b/files/zh-cn/web/api/web_workers_api/functions_and_classes_available_to_workers/index.md @@ -21,7 +21,7 @@ slug: Web/API/Web_Workers_API/Functions_and_classes_available_to_workers - {{domxref("WorkerGlobalScope.btoa()", "btoa()")}} - {{domxref("clearInterval()")}} - {{domxref("clearTimeout()")}} -- {{domxref("createImageBitmap()")}} +- {{domxref("WorkerGlobalScope.createImageBitmap()", "createImageBitmap()")}} - {{domxref("WorkerGlobalScope.dump()", "dump()")}} {{non-standard_inline}} - {{domxref("WorkerGlobalScope.fetch()", "fetch()")}} - {{domxref("WorkerGlobalScope.queueMicrotask()", "queueMicrotask()")}} diff --git a/files/zh-cn/web/api/web_workers_api/index.md b/files/zh-cn/web/api/web_workers_api/index.md index 803ec4411eb2e4..b681130fb8f65a 100644 --- a/files/zh-cn/web/api/web_workers_api/index.md +++ b/files/zh-cn/web/api/web_workers_api/index.md @@ -42,7 +42,7 @@ worker 在一个与当前 {{DOMxRef("window")}} 不同的全局上下文中运 - {{domxref("WorkerGlobalScope.btoa()", "btoa()")}} - {{domxref("clearInterval()")}} - {{domxref("clearTimeout()")}} -- {{domxref("createImageBitmap()")}} +- {{domxref("WorkerGlobalScope.createImageBitmap()", "createImageBitmap()")}} - {{domxref("WorkerGlobalScope.dump()", "dump()")}} {{non-standard_inline}} - {{domxref("WorkerGlobalScope.fetch()", "fetch()")}} - {{domxref("WorkerGlobalScope.queueMicrotask()", "queueMicrotask()")}} @@ -56,7 +56,7 @@ worker 在一个与当前 {{DOMxRef("window")}} 不同的全局上下文中运 以下函数**仅**对 worker 可用: - {{domxref("WorkerGlobalScope.importScripts", "WorkerGlobalScope.importScripts()")}}(所有 worker) -- {{domxref("DedicatedWorkerGlobalScope.postMessage")}}(仅限专用 worker) +- {{domxref("DedicatedWorkerGlobalScope.postMessage()")}}(仅限专用 worker) ### 支持的 Web API diff --git a/files/zh-cn/web/api/window/createimagebitmap/index.md b/files/zh-cn/web/api/window/createimagebitmap/index.md new file mode 100644 index 00000000000000..9c1cfd94b8c255 --- /dev/null +++ b/files/zh-cn/web/api/window/createimagebitmap/index.md @@ -0,0 +1,128 @@ +--- +title: Window:createImageBitmap() 方法 +slug: Web/API/Window/createImageBitmap +l10n: + sourceCommit: 58d79e9c2206e0a604cd4d7f6fba5181262af420 +--- + +{{APIRef("Canvas API")}} + +{{domxref("Window")}} 接口的 **`createImageBitmap`** 从给定的来源创建位图,也可以进行裁剪以包含源图像的一部分。它接受各种不同的图像来源,并返回一个会兑现 {{domxref("ImageBitmap")}} 的 {{domxref("Promise")}}。 + +## 语法 + +```js-nolint +createImageBitmap(image) +createImageBitmap(image, options) +createImageBitmap(image, sx, sy, sw, sh) +createImageBitmap(image, sx, sy, sw, sh, options) +``` + +### 参数 + +- `image` + - : 图像源,可以是以下值之一: + - {{domxref("HTMLImageElement")}} + - {{domxref("SVGImageElement")}} + - {{domxref("HTMLVideoElement")}} + - {{domxref("HTMLCanvasElement")}} + - {{domxref("Blob")}} + - {{domxref("ImageData")}} + - {{domxref("ImageBitmap")}} + - {{domxref("OffscreenCanvas")}} + - {{domxref("VideoFrame")}} +- `sx` + - : 将从中提取 `ImageBitmap` 的矩形的参考点的 x 坐标。 +- `sy` + - : 将从中提取 `ImageBitmap` 的矩形的参考点的 y 坐标。 +- `sw` + - : 将从中提取 `ImageBitmap` 的矩形的宽度。此值可以为负数。 +- `sh` + - : 将从中提取 `ImageBitmap` 的矩形的高度。此值可以为负数。 +- `options` {{optional_inline}} + + - : 设置图像提取选项的对象。可用的选项包括: + + - `imageOrientation` + + - : 指定位图图像的方向。 + + - `from-image` + - : 如果存在 EXIF 方向元数据,则根据其来指定图像方向(默认)。 + - `flipY` + - : 如果存在 EXIF 方向元数据,则根据其来指定图像方向,然后垂直翻转。 + - `none` + - : 根据图像的编码来指定图像方向,忽略有关方向的任何元数据(例如,可能添加到图像中的 EXIF 元数据,以指示相机被转向以在人像模式下捕获图像)。 + + - `premultiplyAlpha` + - : 指定位图的颜色通道是否应与 alpha 通道预乘。以下值之一:`none`、`premultiply` 或 `default`(默认)。 + - `colorSpaceConversion` + - : 指定图像是否应使用色彩空间转换进行解码。`none` 或 `default`(默认)。`default` 值表示使用特定于实现的行为。 + - `resizeWidth` + - : 指定输出宽度的长整数。 + - `resizeHeight` + - : 指定输出高度的长整数。 + - `resizeQuality` + - : 指定用于调整输入大小以匹配输出尺寸的算法。以下值之一:`pixelated`、`low`(默认)、`medium` 或 `high`。 + +### 返回值 + +一个 {{jsxref("Promise")}},会兑现为一个包含给定矩形的位图数据的 {{domxref("ImageBitmap")}} 对象。 + +## 示例 + +### 通过精灵表创建精灵 + +此示例加载精灵表(sprite sheet),从中提取精灵,然后将每个精灵渲染到画布上。精灵表是包含多个较小图像(你希望能够单独渲染每个图像)的图像。 + +```html hidden +原图像: +
+ +``` + +```css hidden +canvas { + border: 2px solid green; +} +``` + +```js +const canvas = document.getElementById("myCanvas"), + ctx = canvas.getContext("2d"), + image = new Image(); + +// 等待精灵表加载完成 +image.onload = () => { + Promise.all([ + // 从精灵表中裁剪出两个精灵 + createImageBitmap(image, 0, 0, 32, 32), + createImageBitmap(image, 32, 0, 32, 32), + createImageBitmap(image, 0, 0, 50, 50, { imageOrientation: "flipY" }), + ]).then((sprites) => { + // 将每个精灵绘制到画布上 + ctx.drawImage(sprites[0], 0, 0); + ctx.drawImage(sprites[1], 32, 32); + ctx.drawImage(sprites[2], 64, 64); + }); +}; + +// 从图像文件加载精灵表 +image.src = "50x50.jpg"; +``` + +{{EmbedLiveSample("通过精灵表创建精灵", "100%", "250")}} + +## 规范 + +{{Specifications}} + +## 浏览器兼容性 + +{{Compat}} + +## 参见 + +- {{domxref("WorkerGlobalScope.createImageBitmap()")}} +- {{domxref("CanvasRenderingContext2D.drawImage()")}} +- {{domxref("ImageData")}} diff --git a/files/zh-cn/web/api/window/index.md b/files/zh-cn/web/api/window/index.md index 86b28db686a132..4a4573f4d8d07f 100644 --- a/files/zh-cn/web/api/window/index.md +++ b/files/zh-cn/web/api/window/index.md @@ -175,7 +175,7 @@ _本接口从 {{domxref("EventTarget")}} 接口继承方法。_ - : 关闭当前窗口。 - {{domxref("Window.confirm()")}} - : 显示一个带有用户需要回应的信息对话框。 -- {{domxref("createImageBitmap", "Window.createImageBitmap()")}} +- {{domxref("Window.createImageBitmap()")}} - : 接受各种不同的图像源,并返回一个 {{jsxref("Promise")}},经兑现可得到 {{domxref("ImageBitmap")}}。可以选择将图片源裁剪成以 _(sx, sy)_ 为起点的像素矩形,宽度为 sw,高度为 sh。 - {{domxref("EventTarget.dispatchEvent", "Window.dispatchEvent()")}} - : 用于触发事件。 diff --git a/files/zh-cn/web/api/window/showopenfilepicker/index.md b/files/zh-cn/web/api/window/showopenfilepicker/index.md index 3a468425066c77..df22c5abc70fbe 100644 --- a/files/zh-cn/web/api/window/showopenfilepicker/index.md +++ b/files/zh-cn/web/api/window/showopenfilepicker/index.md @@ -2,7 +2,7 @@ title: Window:showOpenFilePicker() 方法 slug: Web/API/Window/showOpenFilePicker l10n: - sourceCommit: 4458494807b6f4898d504b6c0af0a45f8031cbf3 + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{APIRef("File System API")}}{{SecureContext_Header}}{{SeeCompatTable}} @@ -34,7 +34,7 @@ showOpenFilePicker() - `description` {{Optional_Inline}} - : 允许的文件类型类别的可选描述。默认为空字符串。 - `accept` - - : 一个 {{jsxref('Object')}},其键设置为 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types),值设置为文件扩展名的{{jsxref('Array', '数组', '', 'nocode')}}(参见下面的示例)。 + - : 一个 {{jsxref('Object')}},其键设置为 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types/Common_types),值设置为文件扩展名的{{jsxref('Array', '数组', '', 'nocode')}}(参见下面的示例)。 ### 返回值 diff --git a/files/zh-cn/web/api/window/showsavefilepicker/index.md b/files/zh-cn/web/api/window/showsavefilepicker/index.md index 6a5cea8cfa5fd2..7af773f9b0211d 100644 --- a/files/zh-cn/web/api/window/showsavefilepicker/index.md +++ b/files/zh-cn/web/api/window/showsavefilepicker/index.md @@ -2,7 +2,7 @@ title: Window:showSaveFilePicker() 方法 slug: Web/API/Window/showSaveFilePicker l10n: - sourceCommit: 4458494807b6f4898d504b6c0af0a45f8031cbf3 + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{APIRef("File System API")}}{{SecureContext_Header}}{{SeeCompatTable}} @@ -36,7 +36,7 @@ showSaveFilePicker() - `description` {{Optional_Inline}} - : 允许的文件类型类别的可选描述。默认为空字符串。 - `accept` - - : 一个 {{jsxref('Object')}},其键设置为 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types),值设置为文件扩展名的{{jsxref('Array', '数组', '', 'nocode')}}(参见下面的示例)。 + - : 一个 {{jsxref('Object')}},其键设置为 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types/Common_types),值设置为文件扩展名的{{jsxref('Array', '数组', '', 'nocode')}}(参见下面的示例)。 ### 返回值 diff --git a/files/zh-cn/web/api/workerglobalscope/createimagebitmap/index.md b/files/zh-cn/web/api/workerglobalscope/createimagebitmap/index.md new file mode 100644 index 00000000000000..037cedb9e2915c --- /dev/null +++ b/files/zh-cn/web/api/workerglobalscope/createimagebitmap/index.md @@ -0,0 +1,88 @@ +--- +title: WorkerGlobalScope:createImageBitmap() 方法 +slug: Web/API/WorkerGlobalScope/createImageBitmap +l10n: + sourceCommit: 58d79e9c2206e0a604cd4d7f6fba5181262af420 +--- + +{{APIRef("Canvas API")}}{{AvailableInWorkers("worker")}} + +{{domxref("WorkerGlobalScope")}} 接口的 **`createImageBitmap`** 从给定的来源创建位图,也可以进行裁剪以包含源图像的一部分。它接受各种不同的图像来源,并返回一个会兑现 {{domxref("ImageBitmap")}} 的 {{domxref("Promise")}}。 + +## 语法 + +```js-nolint +createImageBitmap(image) +createImageBitmap(image, options) +createImageBitmap(image, sx, sy, sw, sh) +createImageBitmap(image, sx, sy, sw, sh, options) +``` + +### 参数 + +- `image` + - : 图像源,可以是以下值之一: + - {{domxref("HTMLImageElement")}} + - {{domxref("SVGImageElement")}} + - {{domxref("HTMLVideoElement")}} + - {{domxref("HTMLCanvasElement")}} + - {{domxref("Blob")}} + - {{domxref("ImageData")}} + - {{domxref("ImageBitmap")}} + - {{domxref("OffscreenCanvas")}} + - {{domxref("VideoFrame")}} +- `sx` + - : 将从中提取 `ImageBitmap` 的矩形的参考点的 x 坐标。 +- `sy` + - : 将从中提取 `ImageBitmap` 的矩形的参考点的 y 坐标。 +- `sw` + - : 将从中提取 `ImageBitmap` 的矩形的宽度。此值可以为负数。 +- `sh` + - : 将从中提取 `ImageBitmap` 的矩形的高度。此值可以为负数。 +- `options` {{optional_inline}} + + - : 设置图像提取选项的对象。可用的选项包括: + + - `imageOrientation` + + - : 指定位图图像的方向。 + + - `from-image` + - : 如果存在 EXIF 方向元数据,则根据其来指定图像方向(默认)。 + - `flipY` + - : 如果存在 EXIF 方向元数据,则根据其来指定图像方向,然后垂直翻转。 + - `none` + - : 根据图像的编码来指定图像方向,忽略有关方向的任何元数据(例如,可能添加到图像中的 EXIF 元数据,以指示相机被转向以在人像模式下捕获图像)。 + + - `premultiplyAlpha` + - : 指定位图的颜色通道是否应与 alpha 通道预乘。以下值之一:`none`、`premultiply` 或 `default`(默认)。 + - `colorSpaceConversion` + - : 指定图像是否应使用色彩空间转换进行解码。`none` 或 `default`(默认)。`default` 值表示使用特定于实现的行为。 + - `resizeWidth` + - : 指定输出宽度的长整数。 + - `resizeHeight` + - : 指定输出高度的长整数。 + - `resizeQuality` + - : 指定用于调整输入大小以匹配输出尺寸的算法。以下值之一:`pixelated`、`low`(默认)、`medium` 或 `high`。 + +### 返回值 + +一个 {{jsxref("Promise")}},会兑现为一个包含给定矩形的位图数据的 {{domxref("ImageBitmap")}} 对象。 + +## 示例 + +参见 {{domxref("Window.createImageBitmap()")}} 以获取示例。 + +## 规范 + +{{Specifications}} + +## 浏览器兼容性 + +{{Compat}} + +## 参见 + +- {{domxref("Window.createImageBitmap()")}} +- {{domxref("CanvasRenderingContext2D.drawImage()")}} +- {{domxref("ImageData")}} diff --git a/files/zh-cn/web/api/workerglobalscope/importscripts/index.md b/files/zh-cn/web/api/workerglobalscope/importscripts/index.md index 9ecfc68187827d..d808ff2f8cc4c5 100644 --- a/files/zh-cn/web/api/workerglobalscope/importscripts/index.md +++ b/files/zh-cn/web/api/workerglobalscope/importscripts/index.md @@ -2,10 +2,10 @@ title: WorkerGlobalScope:importScripts() 方法 slug: Web/API/WorkerGlobalScope/importScripts l10n: - sourceCommit: 542ef6cfd82288925e0a9238b47933f03e2dddca + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- -{{APIRef("Web Workers API")}} +{{APIRef("Web Workers API")}}{{AvailableInWorkers("worker")}} {{domxref("WorkerGlobalScope")}} 接口的 **`importScripts()`** 方法将一个或多个脚本同步导入到 worker 的作用域中。 @@ -20,7 +20,7 @@ importScripts(path0, path1, /* …, */ pathN) ### 参数 - `pathN` - - : 一个表示要导入的脚本的 URL 的字符串值。URL 可以是绝对的,也可以是相对的。如果 URL 是相对的,那么它是相对于 HTML 文档的基本 URL 的。 + - : 一个表示要导入的脚本的 URL 的字符串值。URL 可以是绝对的,也可以是相对的。如果 URL 是相对的,那么它是相对于 worker 入口脚本的 URL。 ### 返回值 @@ -29,16 +29,20 @@ importScripts(path0, path1, /* …, */ pathN) ### 异常 - `NetworkError` - - : 要导入的脚本没有按有效的 JavaScript MIME 类型(有效的类型如 `text/javascript`)或允许的[旧版 JavaScript MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types#遗留的_javascript_mime_类型)提供。 + - : 要导入的脚本没有按有效的 JavaScript MIME 类型(有效的类型如 `text/javascript`)或允许的[旧版 JavaScript MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types#遗留的_javascript_mime_类型)提供。 +- {{jsxref("TypeError")}} + - : 如果当前的 {{domxref("WorkerGlobalScope")}} 是一个模块,则抛出此异常。请改用 [`import`](/zh-CN/docs/Web/JavaScript/Reference/Statements/import)。 ## 示例 -如果你在一个名为 `foo.js` 的单独脚本中编写了一些你想在 worker.js 中使用的功能,则可以使用以下行导入它: +如果你在一个名为 `foo.js` 的单独脚本中编写了一些你想在 `worker.js` 中使用的功能,则可以使用以下行导入它: ```js importScripts("foo.js"); ``` +`foo.js` 应该在与 worker 的入口点相同的 URL 子树中——例如,如果这个 worker 是通过 `new Worker("worker.js")` 创建的,那么 `worker.js` 就是入口点。如果 `worker.js` 在 `https://example.com/scripts/worker.js`,那么 `foo.js` 应该在 `https://example.com/scripts/foo.js`。 + `importScripts()` 和 `self.importScripts()` 实际上是等效的——都表示在 worker 的内部作用域中调用的 `importScripts()`。 ## 规范 diff --git a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.md b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.md index 4c3c75df1f18af..0f638f489ba4ea 100644 --- a/files/zh-cn/web/api/xmlhttprequest/responsexml/index.md +++ b/files/zh-cn/web/api/xmlhttprequest/responsexml/index.md @@ -5,7 +5,7 @@ slug: Web/API/XMLHttpRequest/responseXML {{APIRef('XMLHttpRequest')}} -**XMLHttpRequest.responseXML** 属性是一个只读值,它返回一个包含请求检索的 HTML 或 XML 的{{domxref("Document")}},如果请求未成功,尚未发送,或者检索的数据无法正确解析为 XML 或 HTML,则为 null。默认是当作“text / xml”来解析。当 {{domxref("XMLHttpRequest.responseType", "responseType")}} 设置为“document”并且请求已异步执行时,响应将被当作“text / html”来解析。`responseXML` 对于任何其他类型的数据以及 [`data:` URLs](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) 为 null。 +**XMLHttpRequest.responseXML** 属性是一个只读值,它返回一个包含请求检索的 HTML 或 XML 的{{domxref("Document")}},如果请求未成功,尚未发送,或者检索的数据无法正确解析为 XML 或 HTML,则为 null。默认是当作“text / xml”来解析。当 {{domxref("XMLHttpRequest.responseType", "responseType")}} 设置为“document”并且请求已异步执行时,响应将被当作“text / html”来解析。`responseXML` 对于任何其他类型的数据以及 [`data:` URL](/zh-CN/docs/Web/URI/Schemes/data) 为 null。 > **备注:** `responseXML` 在这个属性的历史堪称神器,它可以同时在 HTML 和 XML 中工作 diff --git a/files/zh-cn/web/api/xmlhttprequest_api/using_xmlhttprequest/index.md b/files/zh-cn/web/api/xmlhttprequest_api/using_xmlhttprequest/index.md index 0fa510c7388e3a..9eae0b38e148ef 100644 --- a/files/zh-cn/web/api/xmlhttprequest_api/using_xmlhttprequest/index.md +++ b/files/zh-cn/web/api/xmlhttprequest_api/using_xmlhttprequest/index.md @@ -217,7 +217,7 @@ foo=bar&baz=The+first+line.%0D%0AThe+second+line.%0D%0A The second line. ``` -- 方法:`POST`;编码类型:[`multipart/form-data`](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types#multipartform-data): +- 方法:`POST`;编码类型:[`multipart/form-data`](/zh-CN/docs/Web/HTTP/MIME_types#multipartform-data): ```plain Content-Type: multipart/form-data; boundary=---------------------------314911788813839 diff --git a/files/zh-cn/web/html/element/input/file/index.md b/files/zh-cn/web/html/element/input/file/index.md index 957cd2b9df46ac..ad66e5353b04e7 100644 --- a/files/zh-cn/web/html/element/input/file/index.md +++ b/files/zh-cn/web/html/element/input/file/index.md @@ -156,7 +156,7 @@ div { - `size` - : 以字节数为单位的文件大小。 - `type` - - : 文件的 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)。 + - : 文件的 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)。 - `webkitRelativePath` {{non-standard_inline}} - : 一个字符串,指定了相对于在目录选择器中选择的基本目录的文件路径(即,一个设置了 [`webkitdirectory`](/zh-CN/docs/Web/HTML/Element/input/file#webkitdirectory) 属性的 `file` 选择器)。_这是非标准的,应该谨慎使用。_ diff --git a/files/zh-cn/web/html/element/meta/index.md b/files/zh-cn/web/html/element/meta/index.md index e5f75675b2300c..95006af631bf9b 100644 --- a/files/zh-cn/web/html/element/meta/index.md +++ b/files/zh-cn/web/html/element/meta/index.md @@ -106,7 +106,7 @@ slug: Web/HTML/Element/meta 允许页面作者定义当前页面的[内容策略](/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy)。内容策略常用来指定允许的服务器源和脚本端点,这有助于防止跨站点脚本攻击。 - `content-type` - 声明 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)和文档的字符编码。如果使用 `content-type` 属性,与之在同一个 `` 元素中使用的 [`content`](#content) 属性的值必须是 `"text/html; charset=utf-8"`。这相当于一个具有指定 `charset` 属性的 `` 元素,并对其在文档中的放置位置有相同的限制。**注意**:该属性只能用于 MIME 类型为 `text/html` 的文档,不能用于 MIME 类型为 XML 的文档。 + 声明 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)和文档的字符编码。如果使用 `content-type` 属性,与之在同一个 `` 元素中使用的 [`content`](#content) 属性的值必须是 `"text/html; charset=utf-8"`。这相当于一个具有指定 `charset` 属性的 `` 元素,并对其在文档中的放置位置有相同的限制。**注意**:该属性只能用于 MIME 类型为 `text/html` 的文档,不能用于 MIME 类型为 XML 的文档。 - `default-style` diff --git a/files/zh-cn/web/html/element/picture/index.md b/files/zh-cn/web/html/element/picture/index.md index 7b9b610f72b645..5334f221cf8d42 100644 --- a/files/zh-cn/web/html/element/picture/index.md +++ b/files/zh-cn/web/html/element/picture/index.md @@ -85,7 +85,7 @@ slug: Web/HTML/Element/picture ### `type` 属性 -`type` 属性允许你为 {{HTMLElement("source")}} 元素的 `srcset` 属性指向的资源指定一个 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)。如果用户代理不支持指定的类型,那么这个 {{HTMLElement("source")}} 元素会被跳过。 +`type` 属性允许你为 {{HTMLElement("source")}} 元素的 `srcset` 属性指向的资源指定一个 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)。如果用户代理不支持指定的类型,那么这个 {{HTMLElement("source")}} 元素会被跳过。 ```html diff --git a/files/zh-cn/web/html/element/script/index.md b/files/zh-cn/web/html/element/script/index.md index 001ed23a0fb39e..2b6af008f5b489 100644 --- a/files/zh-cn/web/html/element/script/index.md +++ b/files/zh-cn/web/html/element/script/index.md @@ -115,7 +115,7 @@ slug: Web/HTML/Element/script - : 该属性表示所代表的脚本类型。该属性的值可能为以下类型: - **属性未设置(默认),一个空字符串,或一个 JavaScript MIME 类型** - - : 代表脚本为包含 JavaScript 代码的“传统的脚本”。如果脚本指的是 JavaScript 代码,我们鼓励作者省略这个属性,而不是指定一个 MIME 类型。所有的 JavaScript MIME 类型都列在 [IANA 的媒体类型规范](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types#textjavascript)中。 + - : 代表脚本为包含 JavaScript 代码的“传统的脚本”。如果脚本指的是 JavaScript 代码,我们鼓励作者省略这个属性,而不是指定一个 MIME 类型。所有的 JavaScript MIME 类型都列在 [IANA 的媒体类型规范](/zh-CN/docs/Web/HTTP/MIME_types#textjavascript)中。 - `module` - : 此值导致代码被视为 JavaScript 模块。其中的代码内容会延后处理。`charset` 和 `defer` 属性不会生效。对于使用 `module` 的更多信息,请参见 [JavaScript 模块](/zh-CN/docs/Web/JavaScript/Guide/Modules)指南。与传统代码不同的是,模块代码需要使用 CORS 协议来跨源获取。 - [`importmap`](/zh-CN/docs/Web/HTML/Element/script/type/importmap) diff --git a/files/zh-cn/web/http/basics_of_http/index.md b/files/zh-cn/web/http/basics_of_http/index.md deleted file mode 100644 index 7b9cc470305aea..00000000000000 --- a/files/zh-cn/web/http/basics_of_http/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: HTTP 基础 -slug: Web/HTTP/Basics_of_HTTP ---- - -{{HTTPSidebar}} - -HTTP 是一个拓展性非常好的协议。它依赖于资源或统一资源定位符(URI)的概念、一个简单的消息结构和一个客户端——服务器结构的通信流。在这些基础概念之上,近年来已经出现了许多拓展,以增加新的 HTTP 方法或首部的方式为 HTTP 协议增加了新的功能和语义。 - -## 文章 - -- [HTTP 概览](/zh-CN/docs/Web/HTTP/Overview) - - : 描述了什么是 HTTP,它在 Web 架构中的角色,以及它在协议栈中的位置。 -- [HTTP 演变](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP) - - : HTTP 是在 20 世纪 90 年代早期出现的,并且已经被扩充了多次。本文会回顾 HTTP 的发展史,描述 HTTP/0.9、HTTP/1.0、HTTP/1.1 和最新的 HTTP/2,以及这些年来出现的一些新特性。 -- [URI](/zh-CN/docs/Web/URI) - - : URI 用于定位 Web 上的资源,并且可以作为 HTTP 请求的目标。 -- [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types) - - : 从 HTTP/1.0 开始,HTTP 协议允许传输不同类型的内容。本文解释了如何通过使用 {{HTTPHeader("Content-Type")}} 首部和 MIME 标准实现这一过程的。 -- [HTTP 会话流程](/zh-CN/docs/Web/HTTP/Session) - - : 本文描述了一个经典的 HTTP 会话:当你在浏览器中点击一个链接或在网页中加载一张图片时,背后到底发生了什么。 -- [HTTP 消息](/zh-CN/docs/Web/HTTP/Messages) - - : 在请求和响应中传输的 HTTP 消息具有非常清晰的结构;本文介绍了消息的结构、设计目的以及其可能性。 -- [HTTP/2 中的帧及消息结构](/zh-CN/docs/Web/HTTP/Frame_and_message_structure_in_HTTP_2) - - : HTTP/2 用二进制帧来压缩和表示 HTTP/1.x 中的消息。本文解释了 HTTP/2 中的帧结构,其设计目的以及编码方式。 -- [HTTP/1.x 的连接管理](/zh-CN/docs/Web/HTTP/Connection_management_in_HTTP_1.x) - - : HTTP/1.1 是首个支持持久化连接和管道化的 HTTP 版本。本文介绍了这两个概念。 -- [HTTP/2 的连接管理](/zh-CN/docs/Web/HTTP/Connection_management_in_HTTP_2) - - : HTTP/2 完全改变了连接创建和维护的方式:本文介绍了 HTTP 帧是怎样支持多路复用并解决之前的 HTTP 版本中存在的队头阻塞问题的。 -- [内容协商](/zh-CN/docs/Web/HTTP/Content_negotiation) - - : HTTP 引入了一组以 [`Accept`](/zh-CN/docs/Web/HTTP/Headers/Accept) 开头的首部,作为浏览器用来声明它们期望得到的格式,语言或编码的方法。本文讲述了这一过程是怎样实现的,以及服务器是怎样处理并选择恰当的响应的。 diff --git a/files/zh-cn/web/http/cors/index.md b/files/zh-cn/web/http/cors/index.md index fb470289fccf12..782b90cb885164 100644 --- a/files/zh-cn/web/http/cors/index.md +++ b/files/zh-cn/web/http/cors/index.md @@ -29,7 +29,7 @@ CORS 机制允许 Web 应用服务器进行跨源访问控制,从而使跨源 ## 功能概述 -跨源资源共享标准新增了一组 [HTTP 标头](/zh-CN/docs/Web/HTTP/Headers)字段,允许服务器声明哪些源站通过浏览器有权限访问哪些资源。另外,规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 {{HTTPMethod("GET")}} 以外的 HTTP 请求,或者搭配某些 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)的 {{HTTPMethod("POST")}} 请求),浏览器必须首先使用 {{HTTPMethod("OPTIONS")}} 方法发起一个预检请求(preflight request),从而获知服务端是否允许该跨源请求。服务器确认允许之后,才发起实际的 HTTP 请求。在预检请求的返回中,服务器端也可以通知客户端,是否需要携带身份凭证(例如 [Cookie](/zh-CN/docs/Web/HTTP/Cookies) 和 [HTTP 认证](/zh-CN/docs/Web/HTTP/Authentication)相关数据)。 +跨源资源共享标准新增了一组 [HTTP 标头](/zh-CN/docs/Web/HTTP/Headers)字段,允许服务器声明哪些源站通过浏览器有权限访问哪些资源。另外,规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 {{HTTPMethod("GET")}} 以外的 HTTP 请求,或者搭配某些 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)的 {{HTTPMethod("POST")}} 请求),浏览器必须首先使用 {{HTTPMethod("OPTIONS")}} 方法发起一个预检请求(preflight request),从而获知服务端是否允许该跨源请求。服务器确认允许之后,才发起实际的 HTTP 请求。在预检请求的返回中,服务器端也可以通知客户端,是否需要携带身份凭证(例如 [Cookie](/zh-CN/docs/Web/HTTP/Cookies) 和 [HTTP 认证](/zh-CN/docs/Web/HTTP/Authentication)相关数据)。 CORS 请求失败会产生错误,但是为了安全,在 JavaScript 代码层面*无法*获知到底具体是哪里出了问题。你只能查看浏览器的控制台以得知具体是哪里出现了错误。 diff --git a/files/zh-cn/web/http/basics_of_http/evolution_of_http/index.md b/files/zh-cn/web/http/evolution_of_http/index.md similarity index 99% rename from files/zh-cn/web/http/basics_of_http/evolution_of_http/index.md rename to files/zh-cn/web/http/evolution_of_http/index.md index 159a189341f5ce..1412c42a81bc4e 100644 --- a/files/zh-cn/web/http/basics_of_http/evolution_of_http/index.md +++ b/files/zh-cn/web/http/evolution_of_http/index.md @@ -1,6 +1,6 @@ --- title: HTTP 的发展 -slug: Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP +slug: Web/HTTP/Evolution_of_HTTP --- {{HTTPSidebar}} diff --git a/files/zh-cn/web/http/headers/accept-post/index.md b/files/zh-cn/web/http/headers/accept-post/index.md index 9b5e4911f8b78c..99803fec166d94 100644 --- a/files/zh-cn/web/http/headers/accept-post/index.md +++ b/files/zh-cn/web/http/headers/accept-post/index.md @@ -2,19 +2,21 @@ title: Accept-Post slug: Web/HTTP/Headers/Accept-Post l10n: - sourceCommit: 0880a90f3811475d78bc4b2c344eb4146f25f66c + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{HTTPSidebar}} -**`Accept-Post`** HTTP 响应标头用于告知客户端服务器在接受 HTTP 的 POST 请求时能处理哪些[媒体类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)。 +**`Accept-Post`** HTTP 响应标头用于告知客户端服务器在接受 HTTP 的 POST 请求时能处理哪些[媒体类型](/zh-CN/docs/Web/HTTP/MIME_types)。 响应中对于任何方法的 **`Accept-Post`** 字段意味着允许在请求的资源上执行 `POST` 操作(标头中任何提及的文档或媒体格式进一步表明该格式的文档也被允许)。 例如,服务器接收到具有不支持的媒体类型的 `POST` 请求时,可以回复 {{HTTPStatus("415")}} `Unsupported Media Type`(不支持的媒体类型)状态码,并在响应中包含一个 **`Accept-Post`** 标头,其中引用了一个或多个支持的媒体类型。 > [!NOTE] -> IANA 维护了[一个完整的官方支持的编码方式列表](https://www.iana.org/assignments/http-parameters/http-parameters.xml#http-parameters-1)。 +> +> - 一个 IANA 注册表维护了[完整的官方支持的编码方式列表](https://www.iana.org/assignments/http-parameters/http-parameters.xhtml#content-coding)。 +> - `bzip` 和 `bzip2` 编码不是标准化的,但可能在某些情况下被使用(包括遗留的支持)。
前提:
diff --git a/files/zh-cn/web/http/headers/accept/index.md b/files/zh-cn/web/http/headers/accept/index.md index b62213bab262a8..b6ffd736917f37 100644 --- a/files/zh-cn/web/http/headers/accept/index.md +++ b/files/zh-cn/web/http/headers/accept/index.md @@ -2,12 +2,12 @@ title: Accept slug: Web/HTTP/Headers/Accept l10n: - sourceCommit: 7aab76c49ae49d606b4958f8dc8cd1269fb7b9b6 + sourceCommit: f75b2c86ae4168e59416aed4c7121f222afc201d --- {{HTTPSidebar}} -**`Accept`** 请求 HTTP 标头表示客户端能够理解的内容类型,以 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types)的形式表达。借助[内容协商机制](/zh-CN/docs/Web/HTTP/Content_negotiation), 服务器可以从诸多备选项中选择一项进行应用,并使用 {{HTTPHeader("Content-Type")}} 响应标头通知客户端它的选择。浏览器会基于请求的上下文来为这个请求标头设置合适的值,比如,获取一个 CSS 层叠样式表时的值与获取图片、视频或脚本文件时的值是不同的。 +**`Accept`** 请求 HTTP 标头表示客户端能够理解的内容类型,以 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types)的形式表达。借助[内容协商机制](/zh-CN/docs/Web/HTTP/Content_negotiation), 服务器可以从诸多备选项中选择一项进行应用,并使用 {{HTTPHeader("Content-Type")}} 响应标头通知客户端它的选择。浏览器会基于请求的上下文来为这个请求标头设置合适的值,比如,获取一个 CSS 层叠样式表时的值与获取图片、视频或脚本文件时的值是不同的。
@@ -44,7 +44,7 @@ Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, */* ## 指令 - `/` - - : 一个单一且精确的 [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types),例如 `text/html`。 + - : 一个单一且精确的 [MIME 类型](/zh-CN/docs/Web/HTTP/MIME_types),例如 `text/html`。 - `/*` - : 一个 MIME 类型,但不包含子类型。`image/*` 对应于 `image/png`、`image/svg`、`image/gif` 以及其他图像类型。 - `*/*` diff --git a/files/zh-cn/web/http/headers/content-security-policy/default-src/index.md b/files/zh-cn/web/http/headers/content-security-policy/default-src/index.md index 28f31ab2026ce7..09dd6cf8d7cd35 100644 --- a/files/zh-cn/web/http/headers/content-security-policy/default-src/index.md +++ b/files/zh-cn/web/http/headers/content-security-policy/default-src/index.md @@ -1,11 +1,11 @@ --- -title: "CSP: default-src" +title: CSP:default-src slug: Web/HTTP/Headers/Content-Security-Policy/default-src --- {{HTTPSidebar}} -在 HTTP 协议中,{{HTTPHeader("Content-Security-Policy")}} (CSP) 首部字段中的 **`default-src`** 指令可以为其他 CSP 拉取指令({{Glossary("fetch directive", "fetch directives")}})提供备选项。对于以下列出的指令,假如不存在的话,那么用户代理会查找并应用 default-src 指令的值。 +HTTP {{HTTPHeader("Content-Security-Policy")}}(CSP)的 **`default-src`** 指令可以为其他 CSP {{Glossary("fetch directive", "fetch 指令")}}提供回退。对于以下列出的指令,假如不存在的话,那么用户代理会查找并应用 `default-src` 指令的值: - {{CSP("child-src")}} - {{CSP("connect-src")}} @@ -19,65 +19,47 @@ slug: Web/HTTP/Headers/Content-Security-Policy/default-src - {{CSP("style-src")}} - {{CSP("worker-src")}} -| CSP 版本 | 1 | -| -------- | ------------------------------- | -| 指令类型 | {{Glossary("Fetch directive")}} | +
+ + + + + + + + + + +
CSP 版本1
指令类型{{Glossary("Fetch directive", "fetch 指令")}}
## 语法 `default-src` 策略允许指定一个或多个源: -```plain +```http Content-Security-Policy: default-src ; Content-Security-Policy: default-src ; ``` ### 源 -\ 可以是以下之一: - -- \ - - : 以域名或者 IP 地址表示的主机名,外加可选的 URL 协议名([URL scheme](/zh-CN/docs/URIs_and_URLs))以及端口号。站点地址中可能会包含一个可选的前置通配符(星号 '\*'),同时也可以将通配符(也是'\*')应用于端口号,表示在这个源中可以使用任意合法的端口号。 - 举例说明:_ `http://_.example.com:` 匹配从使用 http: 的 example.com 的任意子域的资源加载。 - - `mail.example.com:443:`匹配对 mail.example.com 上的 443 端口号的访问。 - - `https://store.example.com`: 匹配对使用了 https: 的 store.example.com 的访问。 -- \ - - - : 协议名如'http:' 或者 'https:'。**必须带有冒号,不要有单引号**。同时你还可以指定数据协议(data schema)(不推荐使用)。 - - - `data:` 允许 [`data:` URIs](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) 作为内容的源。这是不安全的。攻击者可以注入任意 data: URI。不要轻易使用这种形式的源,尤其是脚本,绝对不要使用。 - - `mediastream:` 允许 [`mediastream:` URIs](/zh-CN/docs/Web/API/MediaStream_API) 作为内容的源。 - - `blob:` 允许 [`blob:` URIs](/zh-CN/docs/Web/API/Blob) 作为内容的源。 - - `filesystem:` 允许 [`filesystem:` URIs](/zh-CN/docs/Web/API/FileSystem) 作为内容的源。 - -- `'self'` - - : 指向与要保护的文件所在的源,包括相同的 URL scheme 与端口号。必须有单引号。一些浏览器会特意排除 blob 与 filesystem。需要设定这两种内容类型的站点可以在 Data 属性中进行设定。 -- `'unsafe-inline'` - - : 允许使用内联资源,例如内联 {{HTMLElement("script")}} 元素(javascript: URL)、内联事件处理器以及内联 {{HTMLElement("style")}} 元素。必须有单引号。 -- `'unsafe-eval'` - - : 允许使用 eval() 以及相似的函数来从字符串创建代码。必须有单引号。 -- `'none'` - - : 不允许任何内容。必须有单引号。 -- 'nonce-\' - - : 特定使用一次性加密内联脚本的白名单。服务器必须在每一次传输政策时生成唯一的一次性值。否则将存在绕过资源政策的可能。请参见[不安全的内联脚本](/zh-CN/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#Unsafe_inline_script)查看示例。 -- \ - - : 使用 sha256、sha384 或 sha512 编码过的内联脚本或样式。其由用短划线分隔的两部分组成:用于创建哈希的加密算法,以及脚本或样式 base64 编码的哈希值。当生成哈希值的时候,不要包含 \