diff --git a/files/es/_redirects.txt b/files/es/_redirects.txt index b3dcc425f61dc5..e834b829476281 100644 --- a/files/es/_redirects.txt +++ b/files/es/_redirects.txt @@ -2198,9 +2198,12 @@ /es/docs/Web/HTML/microformatos /es/docs/Web/HTML/microformats /es/docs/Web/HTML/Índice /es/docs/Web/HTML /es/docs/Web/HTTP/Access_control_CORS /es/docs/Web/HTTP/CORS -/es/docs/Web/HTTP/Basics_of_HTTP/Data_URIs /es/docs/Web/HTTP/Basics_of_HTTP/Data_URLs -/es/docs/Web/HTTP/Basics_of_HTTP/Datos_URIs /es/docs/Web/HTTP/Basics_of_HTTP/Data_URLs -/es/docs/Web/HTTP/Basics_of_HTTP/Identificación_recursos_en_la_Web /es/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web +/es/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs /es/docs/Web/URI/Authority/Choosing_between_www_and_non-www_URLs +/es/docs/Web/HTTP/Basics_of_HTTP/Data_URIs /es/docs/Web/URI/Schemes/data +/es/docs/Web/HTTP/Basics_of_HTTP/Data_URLs /es/docs/Web/URI/Schemes/data +/es/docs/Web/HTTP/Basics_of_HTTP/Datos_URIs /es/docs/Web/URI/Schemes/data +/es/docs/Web/HTTP/Basics_of_HTTP/Identificación_recursos_en_la_Web /es/docs/orphaned/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web +/es/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /es/docs/orphaned/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Lista_completa_de_tipos_MIME /es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types /es/docs/Web/HTTP/Gestion_de_la_conexion_en_HTTP_1.x /es/docs/Web/HTTP/Connection_management_in_HTTP_1.x /es/docs/Web/HTTP/Peticiones_condicionales /es/docs/Web/HTTP/Conditional_requests diff --git a/files/es/_wikihistory.json b/files/es/_wikihistory.json index 186b87bf17afe5..576d5ed68cc5f4 100644 --- a/files/es/_wikihistory.json +++ b/files/es/_wikihistory.json @@ -9424,22 +9424,10 @@ "cissoid" ] }, - "Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs": { - "modified": "2019-03-18T21:22:07.450Z", - "contributors": ["Adorta4", "carlosgocereceda"] - }, - "Web/HTTP/Basics_of_HTTP/Data_URLs": { - "modified": "2019-03-23T22:24:54.977Z", - "contributors": ["Sergio_Gonzalez_Collado", "AzazelN28", "uclides"] - }, "Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP": { "modified": "2019-03-23T22:10:11.567Z", "contributors": ["Sergio_Gonzalez_Collado", "ChrisMHM"] }, - "Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web": { - "modified": "2019-03-23T22:24:51.387Z", - "contributors": ["DaniNz", "Sergio_Gonzalez_Collado", "ChrisMHM", "uclides"] - }, "Web/HTTP/Basics_of_HTTP/MIME_types": { "modified": "2019-11-18T08:03:54.325Z", "contributors": [ @@ -13449,6 +13437,14 @@ "diegogaysaez" ] }, + "Web/URI/Authority/Choosing_between_www_and_non-www_URLs": { + "modified": "2019-03-18T21:22:07.450Z", + "contributors": ["Adorta4", "carlosgocereceda"] + }, + "Web/URI/Schemes/data": { + "modified": "2019-03-23T22:24:54.977Z", + "contributors": ["Sergio_Gonzalez_Collado", "AzazelN28", "uclides"] + }, "Web/XML/Parsing_and_serializing_XML": { "modified": "2019-03-23T22:10:22.365Z", "contributors": ["FenixAlive"] @@ -15330,6 +15326,10 @@ "modified": "2019-03-23T22:46:15.359Z", "contributors": ["juanbrujo", "raecillacastellana", "vltamara"] }, + "orphaned/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web": { + "modified": "2019-03-23T22:24:51.387Z", + "contributors": ["DaniNz", "Sergio_Gonzalez_Collado", "ChrisMHM", "uclides"] + }, "orphaned/Web/JavaScript/Reference/Errors/Undefined_prop": { "modified": "2020-03-12T19:47:46.684Z", "contributors": ["antixsuperstar"] diff --git a/files/es/web/http/basics_of_http/identifying_resources_on_the_web/index.md b/files/es/orphaned/web/http/basics_of_http/identifying_resources_on_the_web/index.md similarity index 97% rename from files/es/web/http/basics_of_http/identifying_resources_on_the_web/index.md rename to files/es/orphaned/web/http/basics_of_http/identifying_resources_on_the_web/index.md index 20aecc51608c75..5b581472cec232 100644 --- a/files/es/web/http/basics_of_http/identifying_resources_on_the_web/index.md +++ b/files/es/orphaned/web/http/basics_of_http/identifying_resources_on_the_web/index.md @@ -1,6 +1,7 @@ --- title: Identificación de recursos web -slug: Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web +slug: orphaned/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web +original_slug: Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web --- {{HTTPSidebar}} diff --git a/files/es/web/javascript/reference/global_objects/map/has/index.md b/files/es/web/javascript/reference/global_objects/map/has/index.md new file mode 100644 index 00000000000000..fcf3da626601a8 --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/map/has/index.md @@ -0,0 +1,53 @@ +--- +title: Map.prototype.has() +slug: Web/JavaScript/Reference/Global_Objects/Map/has +l10n: + sourceCommit: 3cfd663738e9963157d90f359789d675a6662ec2 +--- + +{{JSRef}} + +El método **`has()`** de las instancias {{jsxref("Map")}} regresa un booleano indicando si un elemento con la llave especificada existe o no en este _map_. + +{{EmbedInteractiveExample("pages/js/map-prototype-has.html")}} + +## Sintaxis + +```js-nolint +has(key) +``` + +### Parámetros + +- `key` + - : La llave del elemento que se quiere comprobar si existe en el objeto `Map`. + +### Valor devuelto + +`true` si un elemento con la llave especificada existe en el objeto `Map`; de lo contrario regresa `false`. + +## Ejemplos + +### Usando has() + +```js +const myMap = new Map(); +myMap.set("bar", "foo"); + +console.log(myMap.has("bar")); // true +console.log(myMap.has("baz")); // false +``` + +## Especificaciones + +{{Specifications}} + +## Compatibilidad con navegadores + +{{Compat}} + +## Véase también + +- {{jsxref("Map")}} +- {{jsxref("Map.prototype.set()")}} +- {{jsxref("Map.prototype.get()")}} diff --git a/files/es/web/javascript/reference/global_objects/map/keys/index.md b/files/es/web/javascript/reference/global_objects/map/keys/index.md new file mode 100644 index 00000000000000..54d860d274af53 --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/map/keys/index.md @@ -0,0 +1,56 @@ +--- +title: Map.prototype.keys() +slug: Web/JavaScript/Reference/Global_Objects/Map/keys +l10n: + sourceCommit: 27180875516cc311342e74b596bfb589b7211e0c +--- + +{{JSRef}} + +El método **`keys()`** de las instancias {{jsxref("Map")}} regresa un nuevo objeto _[iterator de map](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator)_ que contiene las llaves para cada elemento en este _map_ en orden de inserción. + +{{EmbedInteractiveExample("pages/js/map-prototype-keys.html")}} + +## Sintaxis + +```js-nolint +keys() +``` + +### Parámetros + +Ningúno. + +### Valor devuelto + +Un nuevo [objeto iterator iterable](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator). + +## Ejemplos + +### Usando keys() + +```js +const myMap = new Map(); +myMap.set("0", "foo"); +myMap.set(1, "bar"); +myMap.set({}, "baz"); + +const mapIter = myMap.keys(); + +console.log(mapIter.next().value); // "0" +console.log(mapIter.next().value); // 1 +console.log(mapIter.next().value); // {} +``` + +## Especificaciones + +{{Specifications}} + +## Compatibilidad con navegadores + +{{Compat}} + +## Véase también + +- {{jsxref("Map.prototype.entries()")}} +- {{jsxref("Map.prototype.values()")}} diff --git a/files/es/web/javascript/reference/global_objects/map/set/index.md b/files/es/web/javascript/reference/global_objects/map/set/index.md new file mode 100644 index 00000000000000..b0c111f98fe52d --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/map/set/index.md @@ -0,0 +1,67 @@ +--- +title: Map.prototype.set() +slug: Web/JavaScript/Reference/Global_Objects/Map/set +l10n: + sourceCommit: 3cfd663738e9963157d90f359789d675a6662ec2 +--- + +{{JSRef}} + +El método **`set()`** de las instancias {{jsxref("Map")}} agrega o actualiza una entrada en este _map_ con la llave y valor especificados. + +{{EmbedInteractiveExample("pages/js/map-prototype-set.html")}} + +## Sintaxis + +```js-nolint +set(key, value) +``` + +### Parámetros + +- `key` + - : La llave del elemento que se va a agregar al objeto `Map`. La llave puede ser cualquiera de los [tipos de dato de JavaScript](/es/docs/Web/JavaScript/Data_structures) (cualquier [valor primitivo](/es/docs/Web/JavaScript/Data_structures#valores_primitivos) o cualquier tipo de [objeto JavaScript](/es/docs/Web/JavaScript/Data_structures#objetos)). +- `value` + - : El valor de el elemento que se va a agregar al objeto `Map`. El valor puede ser cualquiera de los [tipos de dato de JavaScript](/es/docs/Web/JavaScript/Data_structures) (cualquier [valor primitivo](/es/docs/Web/JavaScript/Data_structures#valores_primitivos) o cualquier tipo de [objeto JavaScript](/es/docs/Web/JavaScript/Data_structures#objetos)). + +### Valor devuelto + +El objeto `Map`. + +## Ejemplos + +### Usando set() + +```js +const myMap = new Map(); + +// Agrega nuevos elementos a el map +myMap.set("bar", "foo"); +myMap.set(1, "foobar"); + +// Actualiza un elemento en el map +myMap.set("bar", "baz"); +``` + +### Usando set() encadenandolo + +Ya que el método `set()` regresa el mismo objeto `Map`, puedes encadenar la llamada al método como se muestra acontinuación: + +```js +// Agrega nuevos elementos al map, encadenando las llamadas. +myMap.set("bar", "foo").set(1, "foobar").set(2, "baz"); +``` + +## Especificaciones + +{{Specifications}} + +## Compatibilidad con navegadores + +{{Compat}} + +## Véase también + +- {{jsxref("Map")}} +- {{jsxref("Map.prototype.get()")}} +- {{jsxref("Map.prototype.has()")}} diff --git a/files/es/web/javascript/reference/global_objects/map/size/index.md b/files/es/web/javascript/reference/global_objects/map/size/index.md new file mode 100644 index 00000000000000..b7c04c4ab976ec --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/map/size/index.md @@ -0,0 +1,41 @@ +--- +title: Map.prototype.size +slug: Web/JavaScript/Reference/Global_Objects/Map/size +l10n: + sourceCommit: 6a0f9553932823cd0c4dcf695d4b4813474964fb +--- + +{{JSRef}} + +La propiedad de acceso **`size`** de las instancias {{jsxref("Map")}} regresa el número de elementos de este _map_. + +{{EmbedInteractiveExample("pages/js/map-prototype-size.html")}} + +## Descripción + +El valor de `size` es un entero que representa, el número de entradas que el objeto `Map` tiene. La función de acceso para `size` es `undefined`; no puedes modificar esta propiedad. + +## Ejemplos + +### Usando size + +```js +const myMap = new Map(); +myMap.set("a", "alpha"); +myMap.set("b", "beta"); +myMap.set("g", "gamma"); + +console.log(myMap.size); // 3 +``` + +## Especificaciones + +{{Specifications}} + +## Compatibilidad con nvegadores + +{{Compat}} + +## Véase también + +- {{jsxref("Map")}} diff --git a/files/es/web/javascript/reference/global_objects/map/symbol.iterator/index.md b/files/es/web/javascript/reference/global_objects/map/symbol.iterator/index.md new file mode 100644 index 00000000000000..5da76caa464a4c --- /dev/null +++ b/files/es/web/javascript/reference/global_objects/map/symbol.iterator/index.md @@ -0,0 +1,89 @@ +--- +title: Map.prototype[Symbol.iterator]() +slug: Web/JavaScript/Reference/Global_Objects/Map/Symbol.iterator +l10n: + sourceCommit: 6fbdb78c1362fae31fbd545f4b2d9c51987a6bca +--- + +{{JSRef}} + +El método **`[Symbol.iterator]()`** de las instancias {{jsxref("Map")}} implementa el [protocolo de iteración](/es/docs/Web/JavaScript/Reference/Iteration_protocols) y permite a los objetos `Map` ser consumidos por la mayoría de sintaxis que esperan iterables, como lo es, la [sintaxis spread](/es/docs/Web/JavaScript/Reference/Operators/Spread_syntax) y el bucle {{jsxref("Statements/for...of", "for...of")}}. Este método regresa un [objeto iterator de map](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator) que produce tuplas llave-valor del _map_ en orden de inserción. + +El valor inicial de esta propiedad, es el mismo objeto de función que el valor inicial de la propiedad {{jsxref("Map.prototype.entries")}}. + +{{EmbedInteractiveExample("pages/js/map-prototype-@@iterator.html")}} + +## Sintaxis + +```js-nolint +map[Symbol.iterator]() +``` + +### Parámetros + +Ningúno. + +### Valor devuelto + +El mismo valor devuelto que {{jsxref("Map.prototype.entries()")}}: un nuevo [objeto iterator iterable](/es/docs/Web/JavaScript/Reference/Global_Objects/Iterator) que produce tuplas llave-valor del _map_. + +## Ejemplo + +### Iteración usando el bucle for...of + +Note que raramente necesitará llamar este método directamente. La existencia de el método `[Symbol.iterator]()` hace a los objetos `Map` [iterables](/es/docs/Web/JavaScript/Reference/Iteration_protocols#el_protocolo_iterable), y sintaxis de iteracion como lo és el bucle `for...of` automáticamente llama a este método para obtener el iterador que se usará para iterar sobre el objeto. + +```js +const myMap = new Map(); +myMap.set("0", "foo"); +myMap.set(1, "bar"); +myMap.set({}, "baz"); + +for (const entry of myMap) { + console.log(entry); +} +// ["0", "foo"] +// [1, "bar"] +// [{}, "baz"] + +for (const [key, value] of myMap) { + console.log(`${key}: ${value}`); +} +// 0: foo +// 1: bar +// [Object]: baz +``` + +### Manualmente moviendo el iterador + +Puedes llamar manualmente el método `next()` del objeto iterator para tener máximo control sobre el proceso de iteración. + +```js +const myMap = new Map(); +myMap.set("0", "foo"); +myMap.set(1, "bar"); +myMap.set({}, "baz"); + +const mapIter = myMap[Symbol.iterator](); + +console.log(mapIter.next().value); // ["0", "foo"] +console.log(mapIter.next().value); // [1, "bar"] +console.log(mapIter.next().value); // [Object, "baz"] +``` + +## Especificaciones + +{{Specifications}} + +## Compatibilidad con navegadores + +{{Compat}} + +## Véase también + +- {{jsxref("Map")}} +- {{jsxref("Map.prototype.entries()")}} +- {{jsxref("Map.prototype.keys()")}} +- {{jsxref("Map.prototype.values()")}} +- {{jsxref("Symbol.iterator")}} +- [Protocolos de Iteración](/es/docs/Web/JavaScript/Reference/Iteration_protocols) diff --git a/files/es/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md b/files/es/web/uri/authority/choosing_between_www_and_non-www_urls/index.md similarity index 97% rename from files/es/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md rename to files/es/web/uri/authority/choosing_between_www_and_non-www_urls/index.md index de26f6bb111af7..a5c239f56dd645 100644 --- a/files/es/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md +++ b/files/es/web/uri/authority/choosing_between_www_and_non-www_urls/index.md @@ -1,6 +1,7 @@ --- title: Elección entre www y no-www URLs -slug: Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs +slug: Web/URI/Authority/Choosing_between_www_and_non-www_URLs +original_slug: Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs --- {{HTTPSidebar}} diff --git a/files/es/web/http/basics_of_http/data_urls/index.md b/files/es/web/uri/schemes/data/index.md similarity index 98% rename from files/es/web/http/basics_of_http/data_urls/index.md rename to files/es/web/uri/schemes/data/index.md index b9ccaf8f807637..3e601ff63ecd25 100644 --- a/files/es/web/http/basics_of_http/data_urls/index.md +++ b/files/es/web/uri/schemes/data/index.md @@ -1,6 +1,7 @@ --- title: Datos URIs -slug: Web/HTTP/Basics_of_HTTP/Data_URLs +slug: Web/URI/Schemes/data +original_slug: Web/HTTP/Basics_of_HTTP/Data_URLs --- {{HTTPSidebar}} diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt index 0a83af57b00437..00bde0f6bcb6fb 100644 --- a/files/ja/_redirects.txt +++ b/files/ja/_redirects.txt @@ -4140,8 +4140,12 @@ /ja/docs/Web/HTML/Supported_media_formats /ja/docs/Web/Media/Formats /ja/docs/Web/HTML/Using_HTML5_audio_and_video /ja/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content /ja/docs/Web/HTML/属性 /ja/docs/Web/HTML/Attributes -/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URIs /ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs +/ja/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs /ja/docs/Web/URI/Authority/Choosing_between_www_and_non-www_URLs +/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URIs /ja/docs/Web/URI/Schemes/data +/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs /ja/docs/Web/URI/Schemes/data +/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /ja/docs/Web/URI /ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types /ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types +/ja/docs/Web/HTTP/Basics_of_HTTP/Resource_URLs /ja/docs/Web/URI/Schemes/resource /ja/docs/Web/HTTP/Cross-Origin_Resource_Policy_(CORP) /ja/docs/Web/HTTP/Cross-Origin_Resource_Policy /ja/docs/Web/HTTP/Feature_Policy /ja/docs/Web/HTTP/Permissions_Policy /ja/docs/Web/HTTP/Gecko_user_agent_string_reference /ja/docs/Web/HTTP/Headers/User-Agent/Firefox @@ -4191,6 +4195,7 @@ /ja/docs/Web/HTTP/Link_prefetching_FAQ /ja/docs/Glossary/Prefetch /ja/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file /ja/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file /ja/docs/Web/HTTP/Public_Key_Pinning /ja/docs/conflicting/Web/Security/Certificate_Transparency +/ja/docs/Web/HTTP/Resources_and_URIs /ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types /ja/docs/Web/HTTP/Response_codes /ja/docs/Web/HTTP/Status /ja/docs/Web/HTTP/Response_codes/204 /ja/docs/Web/HTTP/Status/204 /ja/docs/Web/HTTP/Server-Side_Access_Control /ja/docs/Web/HTTP/CORS @@ -4625,6 +4630,7 @@ /ja/docs/Web/Security/Public_Key_Pinning /ja/docs/conflicting/Web/Security/Certificate_Transparency /ja/docs/Web/Security/Securing_your_site /ja/docs/Web/Security/Practical_implementation_guides /ja/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion /ja/docs/Web/Security/Practical_implementation_guides/Turning_off_form_autocompletion +/ja/docs/Web/Text_fragments /ja/docs/Web/URI/Fragment/Text_fragments /ja/docs/Web/WebGL /ja/docs/Web/API/WebGL_API /ja/docs/Web/WebGL/Adding_2D_content_to_a_WebGL_context /ja/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context /ja/docs/Web/WebGL/Animating_objects_with_WebGL /ja/docs/Web/API/WebGL_API/Tutorial/Animating_objects_with_WebGL @@ -4901,7 +4907,7 @@ /ja/docs/addons.mozilla.org_(AMO)_API_Developers'_Guide /ja/docs/Mozilla/Add-ons /ja/docs/console /ja/docs/Web/API/console /ja/docs/counters /ja/docs/Web/CSS/CSS_counter_styles/Using_CSS_counters -/ja/docs/data_URIs /ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs +/ja/docs/data_URIs /ja/docs/Web/URI/Schemes/data /ja/docs/dummySlug/Reference /ja/docs/Web/JavaScript/Reference /ja/docs/dummySlug/Reference/About /ja/docs/Web/JavaScript/Reference /ja/docs/dummySlug/Reference/About/Formatting_Conventions /ja/docs/MDN/Writing_guidelines/Writing_style_guide diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json index ac481062da6dfe..00e30aff7d1845 100644 --- a/files/ja/_wikihistory.json +++ b/files/ja/_wikihistory.json @@ -21372,28 +21372,10 @@ "modified": "2019-11-23T23:17:48.338Z", "contributors": ["mfuji09", "silverskyvicto", "cissoid"] }, - "Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs": { - "modified": "2020-12-06T15:11:17.468Z", - "contributors": ["mfuji09", "pcw", "silverskyvicto", "yyss"] - }, - "Web/HTTP/Basics_of_HTTP/Data_URLs": { - "modified": "2020-12-04T15:28:57.902Z", - "contributors": [ - "mfuji09", - "silverskyvicto", - "yyss", - "ethertank", - "sosleepy" - ] - }, "Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP": { "modified": "2020-09-25T15:03:35.377Z", "contributors": ["mfuji09", "silverskyvicto", "yyss"] }, - "Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web": { - "modified": "2020-08-21T11:37:40.436Z", - "contributors": ["mfuji09", "yuta0801", "yyss"] - }, "Web/HTTP/Basics_of_HTTP/MIME_types": { "modified": "2020-07-24T02:39:26.659Z", "contributors": ["pcw", "mfuji09", "nekottyo", "silverskyvicto", "yyss"] @@ -21402,10 +21384,6 @@ "modified": "2020-05-15T22:15:38.965Z", "contributors": ["mfuji09", "chrisdavidmills", "silverskyvicto", "yyss"] }, - "Web/HTTP/Basics_of_HTTP/Resource_URLs": { - "modified": "2019-03-18T21:26:41.834Z", - "contributors": ["mfuji09", "silverskyvicto"] - }, "Web/HTTP/Browser_detection_using_the_user_agent": { "modified": "2020-11-12T13:14:23.994Z", "contributors": ["mfuji09", "negibokken", "silverskyvicto", "karaage-kun"] @@ -22150,10 +22128,6 @@ "modified": "2020-09-22T04:26:24.005Z", "contributors": ["mfuji09", "pcw", "yyss"] }, - "Web/HTTP/Resources_and_URIs": { - "modified": "2019-03-18T21:33:17.331Z", - "contributors": ["mfuji09"] - }, "Web/HTTP/Resources_and_specifications": { "modified": "2020-08-18T01:47:17.883Z", "contributors": ["mfuji09", "Indication"] @@ -29510,6 +29484,24 @@ "Mohawk" ] }, + "Web/URI/Authority/Choosing_between_www_and_non-www_URLs": { + "modified": "2020-12-06T15:11:17.468Z", + "contributors": ["mfuji09", "pcw", "silverskyvicto", "yyss"] + }, + "Web/URI/Schemes/data": { + "modified": "2020-12-04T15:28:57.902Z", + "contributors": [ + "mfuji09", + "silverskyvicto", + "yyss", + "ethertank", + "sosleepy" + ] + }, + "Web/URI/Schemes/resource": { + "modified": "2019-03-18T21:26:41.834Z", + "contributors": ["mfuji09", "silverskyvicto"] + }, "Web/WebDriver": { "modified": "2020-10-15T22:28:29.913Z", "contributors": ["mfuji09"] diff --git a/files/ja/glossary/accent/index.md b/files/ja/glossary/accent/index.md index c33890fb377ef4..a42980c83b1c24 100644 --- a/files/ja/glossary/accent/index.md +++ b/files/ja/glossary/accent/index.md @@ -1,22 +1,18 @@ --- -title: accent (強調表示) +title: Accent (強調色) slug: Glossary/Accent +l10n: + sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34 --- {{GlossarySidebar}} -**強調表示** は主に明るい色によって、配色内でよりわかりやすく背景色と前景色を引き立たせます。これらは多くのプラットフォームの視覚スタイルに存在します (しかしながら、全てではありません) 。 +**強調色**は主に明るい色であり、配色内で実用的な色である背景色や前景色と対照的な色です。これらは多くのプラットフォームの視覚スタイルに存在します(ただし、すべてではありません)。 -ウェブにおいて、強調表示は {{HTMLElement("input")}} 要素で操作の活性状態の部分に使われることがあります。例えばチェックした [checkbox](/ja/docs/Web/HTML/Element/input/checkbox) の背景です。 +ウェブにおいて、強調色は {{HTMLElement("input")}} 要素で操作のアクティブな位置を示すために使われることがあります。例えばチェックした[チェックボックス](/ja/docs/Web/HTML/Element/input/checkbox)の背景に使われます。 ## 関連情報 -### 強調表示に関連する CSS +### 強調色に関連する CSS -特定の要素の CSS {{cssxref("accent-color")}} プロパティに適切な {{cssxref("<color>")}} 値を設定することで、強調表示の色を設定できます。 - -### 強調表示を持つHTML要素 - -- [``](/ja/docs/Web/HTML/Element/input/checkbox) -- [``](/ja/docs/Web/HTML/Element/input/radio) -- [``](/ja/docs/Web/HTML/Element/input/range) +特定の要素の CSS {{cssxref("accent-color")}} プロパティに適切な {{cssxref("<color>")}} 値を設定することで、強調色を設定できます。 diff --git a/files/ja/glossary/world_wide_web/index.md b/files/ja/glossary/world_wide_web/index.md index 3f5c9c25fdc91c..268d51cc66ba29 100644 --- a/files/ja/glossary/world_wide_web/index.md +++ b/files/ja/glossary/world_wide_web/index.md @@ -1,32 +1,28 @@ --- title: World Wide Web slug: Glossary/World_Wide_Web +l10n: + sourceCommit: ada5fa5ef15eadd44b549ecf906423b4a2092f34 --- {{GlossarySidebar}} -_World Wide Web_ は、一般に **WWW**, **W3**, もしくは **ウェブ** と呼ばれ、{{Glossary("Internet", "インターネット")}} を通じて公開されたウェブページが相互に接続されたシステムのことです。ウェブはインターネットと同義ではありません。ウェブは、インターネット上に構築された多くのアプリケーションの中の一つなのです。 +_World Wide Web_ は、一般に **WWW**, **W3**, もしくは **ウェブ** と呼ばれ、{{Glossary("Internet", "インターネット")}} を通じて公開されたウェブページが相互に接続されたシステムのことです。ウェブはインターネットと同義ではありません。ウェブは、インターネット上に構築された多くのアプリケーションの中の一つです。 -ティム・バーナーズ=リー卿は、World Wide Web として知られることとなったアーキテクチャを提唱しました。彼は、1990 年に世界初のウェブ {{Glossary("Server","サーバー")}} とウェブ {{Glossary("Browser","ブラウザー")}}、そしてウェブページを CERN 物理学研究所の自身のコンピューター上に構築しました。1991 年に、彼は alt.hypertext ニュースグループで自身の成果を公表しました。ウェブが世界で初めて公になった瞬間でした。 +ティム・バーナーズ=リーは、World Wide Web として知られることとなったアーキテクチャを提唱しました。彼は、1990 年に世界初のウェブ{{Glossary("Server","サーバー")}}とウェブ{{Glossary("Browser","ブラウザー")}}、そしてウェブページを CERN 物理学研究所の自身のコンピューター上に構築しました。1991 年に、彼は alt.hypertext ニュースグループで自身の成果を公表しました。ウェブが世界で初めて公になった瞬間でした。 今日、「ウェブ」として知られているシステムは、いくつかの構成要素から成り立っています。 - **{{Glossary("HTTP")}}** プロトコルがサーバーとクライアント間のデータ転送を管理しています。 -- ウェブの構成要素へアクセスするため、クライアントは **{{Glossary("URL")}}** (uniform resource location) もしくは (以前は Universal Document Identifier (UDI) と呼ばれていた) {{Glossary("URI")}} (uniform resource identifier) と呼ばれる固有の識別子を提供します。 -- **{{Glossary("HTML")}}** (hypertext markup language) は、ドキュメントを公開する最も一般的な形式です。 +- ウェブの構成要素へアクセスするため、クライアントは **{{Glossary("URL")}}** (uniform resource location) もしくは {{Glossary("URI")}} (uniform resource identifier、以前は Universal Document Identifier (UDI) と呼ばれていた) と呼ばれる固有の識別子を提供します。 +- **{{Glossary("HTML")}}** (hypertext markup language) は、文書を公開する最も一般的な形式です。 -リンクする、もしくは {{Glossary("Hyperlink","ハイパーリンク")}} を介してリソースを結びつけることは、関連するドキュメントをひとまとめに識別できるようにする、ウェブの特徴的な概念です。 +リンクする、もしくは{{Glossary("Hyperlink","ハイパーリンク")}}を介してリソースを結びつけることは、関連するドキュメントをひとまとめに識別できるようにする、ウェブの特徴的な概念です。 -ウェブを発明した後すぐに、ティム・バーナーズ=リー卿は、ウェブを標準化し、さらに開発を進めるべく、{{Glossary("W3C")}} (World Wide Web Consortium) を設立しました。この協会は、ウェブブラウザーの開発者、政府団体、研究者および大学などの主要なウェブの利益団体で構成されています。その使命には、教育や地域社会への貢献も含まれています。 +ウェブを発明した後でまもなく、ティム・バーナーズ=リーは、ウェブを標準化し、さらに開発を進めるべく、{{Glossary("W3C")}} (World Wide Web Consortium) を設立しました。この協会は、ウェブブラウザーの開発者、政府団体、研究者および大学などの主要なウェブの利益団体で構成されています。その使命には、教育や地域社会への貢献も含まれています。 ## 関連情報 -### ウェブについて学ぶ - - [Learn the Web](/ja/docs/Learn) -- [Web literacy map](https://learning.mozilla.org/web-literacy) (ウェブ開発に必要なスキル項目) - -### 基礎知識 - -- Wikipedia 上の [World Wide Web](https://ja.wikipedia.org/wiki/World_Wide_Web) -- [W3C のウェブサイト](http://w3.org) +- [World Wide Web](https://ja.wikipedia.org/wiki/World_Wide_Web)(ウィキペディア) +- [W3C のウェブサイト](https://www.w3.org/) diff --git a/files/ja/learn/html/tables/advanced/index.md b/files/ja/learn/html/tables/advanced/index.md index 699fee57838605..609daf8cc069b1 100644 --- a/files/ja/learn/html/tables/advanced/index.md +++ b/files/ja/learn/html/tables/advanced/index.md @@ -101,7 +101,7 @@ l10n: > [!NOTE] > 現時点で私たちはあなたが CSS を完全に理解しているとは思っていません。 あなたが私たちの CSS モジュールを一通り学ぶとき、これについてより多くを学ぶでしょう([CSS 入門](/ja/docs/Learn/CSS/First_steps)は始めるのに良い場所です。 [スタイル設定された表](/ja/docs/Learn/CSS/Building_blocks/Styling_tables)に関する具体的な記事もあります)。 -最終的な票は、次のようになるでしょう。 +最終的な表は、次のようになるでしょう。 {{ EmbedGHLiveSample('learning-area/html/tables/advanced/spending-record-finished.html', '100%', 400) }} diff --git a/files/ja/web/api/navigationpreloadmanager/disable/index.md b/files/ja/web/api/navigationpreloadmanager/disable/index.md new file mode 100644 index 00000000000000..40b5699091e6a9 --- /dev/null +++ b/files/ja/web/api/navigationpreloadmanager/disable/index.md @@ -0,0 +1,62 @@ +--- +title: "NavigationPreloadManager: disable() メソッド" +short-title: disable() +slug: Web/API/NavigationPreloadManager/disable +l10n: + sourceCommit: bc0237f139ee3a9db67a669ae1b6bf45ebba7f94 +--- + +{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}} + +**`disable()`** は {{domxref("NavigationPreloadManager")}} インターフェイスのメソッドで、以前に {{domxref("NavigationPreloadManager.enable()","enable()")}} を使用して開始されたサービスワーカー管理リソースの自動事前読み込みを停止します。 +このメソッドは、`undefined` で解決するプロミスを返します。 + +このメソッドは、サービスワーカーの `activate` イベントハンドラー(`fetch` イベントハンドラーが呼ばれる前)で呼ばれることがあります。 + +## 構文 + +```js-nolint +disable() +``` + +### 引数 + +なし。 + +### 返値 + +{{jsxref('undefined')}} で解決するプロミス ({{jsxref("Promise")}}) です。 + +### 例外 + +- `InvalidStateError` {{domxref("DOMException")}} + - : この {{domxref("NavigationPreloadManager")}} が属する登録に関連するアクティブなワーカーがない場合。 + +## 例 + +下記のコードは最初に {{domxref("ServiceWorkerRegistration.navigationPreload")}} の使用に対応していることを確認した後、事前読み込みを無効にする方法を示しています。 + +```js +addEventListener("activate", (event) => { + event.waitUntil( + (async () => { + if (self.registration.navigationPreload) { + // Disable navigation preloads! + await self.registration.navigationPreload.disable(); + } + })(), + ); +}); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +{{domxref("NavigationPreloadManager.enable()")}} diff --git a/files/ja/web/api/navigationpreloadmanager/enable/index.md b/files/ja/web/api/navigationpreloadmanager/enable/index.md new file mode 100644 index 00000000000000..3b5e4a9c5076d9 --- /dev/null +++ b/files/ja/web/api/navigationpreloadmanager/enable/index.md @@ -0,0 +1,62 @@ +--- +title: "NavigationPreloadManager: enable() メソッド" +short-title: enable() +slug: Web/API/NavigationPreloadManager/enable +l10n: + sourceCommit: bc0237f139ee3a9db67a669ae1b6bf45ebba7f94 +--- + +{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}} + +**`enable()`** は {{domxref("NavigationPreloadManager")}} インターフェイスのメソッドで、サービスワーカーが管理するリソースの事前読み込みを有効にするために使用されます。 +このメソッドは、`undefined` で解決するプロミスを返します。 + +このメソッドは、サービスワーカーの `activate` イベントハンドラーで呼び出されるべきであり、これにより、`fetch` イベントハンドラーが発行される前に確実に呼び出されるようになります。 + +## 構文 + +```js-nolint +enable() +``` + +### 引数 + +なし。 + +### 返値 + +{{jsxref('undefined')}} で解決するプロミス ({{jsxref("Promise")}}) です。 + +### 例外 + +- `InvalidStateError` {{domxref("DOMException")}} + - : この {{domxref("NavigationPreloadManager")}} が属する登録に関連するアクティブなワーカーがない場合。 + +## 例 + +下記のコードは最初に {{domxref("ServiceWorkerRegistration.navigationPreload")}} の使用に対応していることを確認した後、事前読み込みを有効にする方法を示しています。 + +```js +addEventListener("activate", (event) => { + event.waitUntil( + (async () => { + if (self.registration.navigationPreload) { + // Enable navigation preloads! + await self.registration.navigationPreload.enable(); + } + })(), + ); +}); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +{{domxref("NavigationPreloadManager.disable()")}} diff --git a/files/ja/web/api/navigationpreloadmanager/getstate/index.md b/files/ja/web/api/navigationpreloadmanager/getstate/index.md new file mode 100644 index 00000000000000..e5b1e6dc3303f6 --- /dev/null +++ b/files/ja/web/api/navigationpreloadmanager/getstate/index.md @@ -0,0 +1,60 @@ +--- +title: "NavigationPreloadManager: getState() メソッド" +short-title: getState() +slug: Web/API/NavigationPreloadManager/getState +l10n: + sourceCommit: 58ad1df59f2ffb9ecab4e27fe1bdf1eb5a55f89b +--- + +{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}} + +**`getState()`** は {{domxref("NavigationPreloadManager")}} インターフェイスのメソッドで、事前読み込みが有効になっているかどうか、また、どのような値が HTTP ヘッダーの {{HTTPHeader("Service-Worker-Navigation-Preload")}} に送信されるかを示すプロパティを持つオブジェクトを返すプロミス ({{jsxref("Promise")}}) を返します。 + +## 構文 + +```js-nolint +getState() +``` + +### 引数 + +なし。 + +### 返値 + +以下のプロパティを持つオブジェクトで解決するプロミス ({{jsxref("Promise")}}) です。 + +- `enabled` + - : 事前読み込みが有効であれば `true`、それ以外では `false` です。 +- `headerValue` + - : 事前読み込みされた {{domxref("Window/fetch", "fetch()")}} に続き、HTTP のヘッダー `Service-Worker-Navigation-Preload` に送信される値を含む文字列。 + これは {{domxref("NavigationPreloadManager.setHeaderValue()")}} を使用して値が変更されない限り、既定値は `true` です。 + +### 例外 + +- `InvalidStateError` {{domxref("DOMException")}} + - : この {{domxref("NavigationPreloadManager")}} が属する登録に関連するアクティブなワーカーがない場合。 + +## 例 + +下記コードは、サービスワーカーが準備完了した時点でリクエストされた現在の状態を示しています。 + +```js +navigator.serviceWorker.ready + .then((registration) => registration.navigationPreload.getState()) + .then((state) => { + console.log(state.enabled); // boolean + console.log(state.headerValue); // string + }) + .catch((e) => + console.error(`NavigationPreloadManager not supported: ${e.message}`), + ); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/api/navigationpreloadmanager/index.md b/files/ja/web/api/navigationpreloadmanager/index.md index 0491e47b902d84..fdc05e830baa17 100644 --- a/files/ja/web/api/navigationpreloadmanager/index.md +++ b/files/ja/web/api/navigationpreloadmanager/index.md @@ -1,33 +1,60 @@ --- title: NavigationPreloadManager slug: Web/API/NavigationPreloadManager +l10n: + sourceCommit: f2088b8912ef205a737551441d54b73507bd3ac6 --- -{{APIRef("Service Workers API")}} +{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}} -[Service Worker API](/ja/docs/Web/API/Service_Worker_API) の **`NavigationPreloadManager`** インターフェイスは、サービスワーカーによるリソースのプリロード(事前読み込み)を管理するためのメソッドを提供します。 +**`NavigationPreloadManager`** は[サービスワーカー API](/ja/docs/Web/API/Service_Worker_API) のインターフェイスで、サービスワーカーによるリソースの事前読み込みを管理するためのメソッドを提供します。 + +対応していれば、この型のオブジェクトは {{domxref("ServiceWorkerRegistration.navigationPreload")}} によって返されます。 +事前読み込みフェッチリクエストの結果は、{{domxref("FetchEvent.preloadResponse")}} によって返されたプロミスを使用して待ちます。 ## メソッド - {{domxref("NavigationPreloadManager.enable()")}} - - : ナビゲーションのプリロードを有効にし、解決する {{jsxref("Promise")}} を返します。 + - : ナビゲーションの事前読み込みを有効にし、{{jsxref('undefined')}} で解決する {{jsxref("Promise")}} を返します。 - {{domxref("NavigationPreloadManager.disable()")}} - - : ナビゲーションのプリロードを無効にし、解決する {{jsxref("Promise")}} を返します。 + - : ナビゲーションの事前読み込みを無効にし、{{jsxref('undefined')}} で解決する {{jsxref("Promise")}} を返します。 - {{domxref("NavigationPreloadManager.setHeaderValue()")}} - : `Service-Worker-Navigation-Preload` ヘッダーの値を設定し、空の {{jsxref("Promise")}} を返します。 - {{domxref("NavigationPreloadManager.getState()")}} - - : プリロードが有効かどうかと、`Service-Worker-Navigation-Preload` の内容を示すプロパティを持つオブジェクトに解決する {{jsxref("Promise")}} を返します。 + - : 事前読み込みが有効かどうかと、HTTP の {{HTTPHeader("Service-Worker-Navigation-Preload")}} の内容を示すプロパティを持つオブジェクトに解決する {{jsxref("Promise")}} を返します。 + +## 解説 + +サービスワーカーは、指定されたスコープ内のページに対して、サイトの代理として {{domxref("Window/fetch", "fetch()")}} イベントを処理します。 +ユーザーがサービスワーカーを使用するページに移動すると、ブラウザーは(まだ実行していなければ)ワーカーを起動し、フェッチイベントを送信して結果を待ちます。 +イベントを受信すると、キャッシュにリソースが存在する場合はそれを返します。存在しない場合はリモートサーバーからリソースを取得します(将来のリクエストで返すためのコピーを保存します)。 + +サービスワーカーは、起動するまでブラウザーからのイベントを処理できません。 +これは避けられませんが、通常は大きな影響はありません。 +サービスワーカーは、多くの場合、すでに開始されています(他にもリクエストされた処理が完了する時点までアクティブな状態が続きます)。 +サービスワーカーが起動しなければならない場合でも、多くの場合、キャッシュから値が返されるため、非常に高速です。 +しかし、リモートリソースを取得し始める前にワーカーが起動しなければならない場合、遅延は著しくなる可能性があります。 + +`NavigationPreloadManager` には、サービスワーカーの起動時にリソースを並列して取得するメカニズムが用意されており、これにより、ワーカーがブラウザーからのフェッチリクエストを処理できるまでに、リソースがすでに完全に、または部分的にダウンロードされている状態にすることができます。 +これにより、ワーカーがすでに開始されている場合と「同程度」に悪い状態で開始される場合、場合によってはそれよりも良い状態で開始される場合があります。 + +事前読み込みマネージャーは、事前読み込みリクエストに HTTP の {{HTTPHeader("Service-Worker-Navigation-Preload")}} ヘッダーを送信し、事前読み込みリクエストに対するレスポンスをカスタマイズできるようにします。 +例えば、元のページの一部だけに送信されるデータを削減したり、ユーザーのログイン状態に基づいてレスポンスをカスタマイズしたりするために使用できます。 ## 例 -#### ナビゲーションのプリロードの機能を検出して有効化 +この例は [Speed up Service Worker with Navigation Preloads](https://web.dev/blog/navigation-preload) (developer.chrome.com) から取ったものです。 + +#### ナビゲーションの事前読み込みの機能を検出して有効化 + +下記では、最初の {{domxref("ServiceWorkerRegistration.navigationPreload")}} を使用して、この機能に対応してしているかどうかを判断した後、サービスワーカーの activate イベントハンドラーでナビゲーションの事前読み込みを有効にしています(この関数は、サービスワーカー用の `NavigationPreloadManager` を返すか、機能に対応していない場合は `undefined` を返します)。 ```js addEventListener("activate", (event) => { event.waitUntil( - (async function () { + (async () => { if (self.registration.navigationPreload) { - // ナビゲーションのプリロードを有効にします! + // ナビゲーションの事前読み込みを有効にします! await self.registration.navigationPreload.enable(); } })(), @@ -35,19 +62,25 @@ addEventListener("activate", (event) => { }); ``` -#### プリロードされたレスポンスの使用 +#### 事前読み込みされたレスポンスの使用 + +次のコードは、事前読み込みされたレスポンス ({{domxref("FetchEvent.preloadResponse")}}) を使用するサービスワーカーのフェッチイベントハンドラーを示しています。 -次の例は、プリロードされたレスポンスを使用する fetch イベントの実装を示しています。 +`fetch` イベントハンドラーは、{{domxref("FetchEvent.respondWith", "FetchEvent.respondWith()")}} を呼び出して、コントロールするページにプロミスを渡すと、このプロミスはリクエストされたリソースで解決されます。リソースは、キャッシュ、事前読み込みされたフェッチリクエスト、または新しいネットワークリクエストから取得されます。 + +この {{domxref("Cache")}} オブジェクトに一致する URL リクエストがある場合、コードはキャッシュからレスポンスを取得するための解決済みのプロミスを返します。 +キャッシュに一致するものがなかった場合、コードは解決済みの事前読み込みレスポンス ({{domxref("FetchEvent.preloadResponse")}}) を返します。 +一致するキャッシュ項目または事前読み込みレスポンスがなかった場合、コードはネットワークから新しい読み取り操作を開始し、その読み取り操作のための(未解決の)プロミスを返します。 ```js addEventListener("fetch", (event) => { event.respondWith( - (async function () { + (async () => { // 可能なら、キャッシュから応答します const cachedResponse = await caches.match(event.request); if (cachedResponse) return cachedResponse; - // それがなく、プリロードされたレスポンスがあれば、それを使用します + // それがなく、事前読み込みされたレスポンスがあれば、それを使用します const response = await event.preloadResponse; if (response) return response; @@ -58,10 +91,55 @@ addEventListener("fetch", (event) => { }); ``` -## 仕様 +### 独自のレスポンス + +ブラウザーは、事前読み込みリクエストに HTTP の {{HTTPHeader("Service-Worker-Navigation-Preload")}} ヘッダーを、既定で `true` のディレクティブ値で送信します。 +これにより、サーバーは通常のフェッチリクエストと事前読み込みフェッチリクエストを区別し、必要に応じてそれぞれ異なるレスポンスを送信することができます。 + +> [!NOTE] +> 事前読み込みと通常のフェッチ操作で異なるレスポンスを返すことができる場合、サーバーは確実に異なるレスポンスがキャッシュされるように `Vary: Service-Worker-Navigation-Preload` を設定する必要があります。 + +{{domxref("NavigationPreloadManager.setHeaderValue()")}} を使用してヘッダー値を変更し、先読み操作に追加のコンテキストを提供することができます。 +例えば、最近キャッシュされたリソースの ID を値として設定すると、サーバーは実際に必要とされるまでリソースを返さなくなります。 +同様に、Cookie を使用する代わりに、認証ステータスに基づいて返値を構成することもできます。 + +下記のコードは、ヘッダーディレクティブの値を、変数 `newValue` に設定する方法を示しています。 + +```js +navigator.serviceWorker.ready + .then((registration) => + registration.navigationPreload.setHeaderValue(newValue), + ) + .then(() => { + console.log("Done!"); + }); +``` + +[Speed up Service Worker with Navigation Preloads > Custom responses for preloads](https://web.dev/blog/navigation-preload) は、記事のウェブページのレスポンスがキャッシュされたヘッダーとフッターから構築されるサイトの、より完全な例を提供します。これにより、記事コンテンツのみが先読みされるように返されます。 + +### 状態の取得 + +{{domxref("NavigationPreloadManager.getState()")}} を使用すると、ナビゲーションの事前読み込みが有効になっているかどうかを調べ、事前読み込みリクエストに対して HTTP の {{HTTPHeader("Service-Worker-Navigation-Preload")}} ヘッダーにどのようなディレクティブ値が送信されているかを判断することができます。 + +下記コードは、状態オブジェクトに解決するプロミスを取得し、結果をログ出力する方法を示しています。 + +```js +navigator.serviceWorker.ready + .then((registration) => registration.navigationPreload.getState()) + .then((state) => { + console.log(state.enabled); // boolean + console.log(state.headerValue); // string + }); +``` + +## 仕様書 {{Specifications}} ## ブラウザーの互換性 {{Compat}} + +## 関連情報 + +- [Speed up Service Worker with Navigation Preloads](https://web.dev/blog/navigation-preload) (developer.chrome.com) diff --git a/files/ja/web/api/navigationpreloadmanager/setheadervalue/index.md b/files/ja/web/api/navigationpreloadmanager/setheadervalue/index.md new file mode 100644 index 00000000000000..54ba6c070ac058 --- /dev/null +++ b/files/ja/web/api/navigationpreloadmanager/setheadervalue/index.md @@ -0,0 +1,61 @@ +--- +title: "NavigationPreloadManager: setHeaderValue() メソッド" +short-title: setHeaderValue() +slug: Web/API/NavigationPreloadManager/setHeaderValue +l10n: + sourceCommit: cfb7587e3e3122630ad6cbd94d834ecadbe0a746 +--- + +{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}} + +**`setHeaderValue()`** は {{domxref("NavigationPreloadManager")}} インターフェイスのメソッドで、サービスワーカーのナビゲーション事前読み込み中に実行された {{domxref("Window/fetch", "fetch()")}} 操作の結果として送信されるリクエストに付加される {{HTTPHeader("Service-Worker-Navigation-Preload")}} ヘッダーの値を設定します。 +これは、`undefined` で解決する空のプロミス ({{jsxref("Promise")}}) を返します。 + +事前読み込みリクエストに {{HTTPHeader("Service-Worker-Navigation-Preload")}} ヘッダーが存在することで、サーバーは事前読み込みフェッチリクエストと通常のフェッチリクエストに対して、異なるリソースを返すように構成することができます。 +既定でこのディレクティブは `true` に設定されています。このメソッドでは、事前読み込みリクエストに対して複数の異なる応答を構成することが可能なのです。 + +> [!NOTE] +> このヘッダーを設定することで異なるレスポンスが返される可能性がある場合、サーバーは異なるレスポンスが確実にキャッシュされるように `Vary: Service-Worker-Navigation-Preload` を設定する必要があります。 + +## 構文 + +```js-nolint +setHeaderValue(value) +``` + +### 引数 + +- `value` + - : 対象とするサーバーが、リクエストされたリソースに対して何を返すべきかを決定するために使用する任意の文字列値です。 + +### 返値 + +{{jsxref('undefined')}} で解決するプロミス ({{jsxref("Promise")}}) です。 + +### 例外 + +- `InvalidStateError` {{domxref("DOMException")}} + - : この {{domxref("NavigationPreloadManager")}} が属する登録に関連するアクティブなワーカーがない場合。 + +## 例 + +次のコードは、この値を設定する方法を示しています。 + +```js +navigator.serviceWorker.ready + .then((registration) => + registration.navigationPreload.setHeaderValue(newValue), + ) + .then(() => console.log("Done!")) + .catch((e) => + console.error(`NavigationPreloadManager に対応していません: ${e.message}`), + ); +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} diff --git a/files/ja/web/http/basics_of_http/identifying_resources_on_the_web/index.md b/files/ja/web/http/basics_of_http/identifying_resources_on_the_web/index.md deleted file mode 100644 index 3123bfd8fede58..00000000000000 --- a/files/ja/web/http/basics_of_http/identifying_resources_on_the_web/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: ウェブ上のリソースの識別 -slug: Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web -l10n: - sourceCommit: 592f6ec42e54981b6573b58ec0343c9aa8cbbda8 ---- - -{{HTTPSidebar}} - -HTTP リクエストの対象は「リソース」と呼ばれ、その本質は細かく定義されていません。文書、写真、その他の何でもなりえます。それぞれのリソースは、リソースを特定するために HTTP の至るところで使用される Uniform Resource Identifier ({{Glossary("URI")}}) で特定されます。 - -## URL と URN - -### URL - -もっとも一般的な URI の形式は Uniform Resource Locator ({{Glossary("URL")}}) であり、*ウェブアドレス*として知られています。 - -```url -https://developer.mozilla.org -https://developer.mozilla.org/ja/docs/Learn/ -https://developer.mozilla.org/ja/search?q=URL -``` - -ブラウザーのアドレスバーに URL を入力して、URL に関連付けられているページ (リソース) を読み込むように指示できます。 - -URL はさまざまな部品で構成されており、必須のものと省略可能なものがあります。より複雑な URL として、例えば次のようなものがあります。 - -```url -http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument -``` - -### URN - -Uniform Resource Name (URN) は、特定の名前空間内における名前によってリソースを特定する URI です。 - -```url -urn:isbn:9780141036144 -urn:ietf:rfc:7230 -``` - -2 つの URN は以下のものに対応します。 - -- George Orwell の書籍 Nineteen Eighty-Four -- IETF 仕様書 7230、 Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing - -## Uniform Resource Identifiers (URI) の構文 - -### スキームまたはプロトコル - -- ![Protocol](mdn-url-protocol@x2.png) - - : `http://` はプロトコルです。これは、ブラウザーが使用すべきプロトコルを示します。通常、 HTTP プロトコルまたは安全なバージョンである HTTPS になります。ウェブではこれら 2 つのうちひとつを必要としますが、ブラウザーは `mailto:` (メールクライアントを開く)やファイル転送を扱う `ftp:` といったほかのプロトコルの扱い方も知っていますので、このようなプロトコルが現れても驚かないでください。主なスキームは以下のとおりです。 - -| スキーム | 説明 | -| ----------- | ---------------------------------------------------------------- | -| data | [Data URI](/ja/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) | -| file | ホスト固有のファイル名 | -| ftp | {{Glossary("FTP","File Transfer Protocol")}} | -| http/https | [Hyper text transfer protocol (安全)](/ja/docs/Glossary/HTTP) | -| javascript | URL に埋め込まれた JavaScript のコード | -| mailto | 電子メールアドレス | -| ssh | Secure shell | -| tel | 電話 | -| urn | Uniform Resource Names | -| view-source | リソースのソースコード | -| ws/wss | (暗号化された) [WebSocket](/ja/docs/Web/API/WebSockets_API) 接続 | - -### オーソリティ - -- ![ドメイン名](mdn-url-domain@x2.png) - - : `www.example.com` は、名前空間を統制するドメイン名またはオーソリティです。これは、どのウェブサーバーがリクエストされているかを示します。代わりに {{Glossary("IP address","IP アドレス")}}を直接使用することもできますが、利便性が低いためウェブではあまり使用されません。 - -### ポート番号 - -- ![ポート番号](mdn-url-port@x2.png) - - : ここで `:80` はポート番号です。これはウェブサーバー内のリソースへアクセスするために使用する、技術上の「出入口」です。ウェブサーバーがリソースへのアクセスを受け入れるために HTTP プロトコルの標準ポート(HTTP では 80、HTTPS では 443)を使用している場合、通常はポートを省略します。それ以外の場合は、ポートが必須です。 - -### パス - -- ![ファイルへのパス](mdn-url-path@x2.png) - - : `/path/to/myfile.html` は、ウェブサーバー内にあるリソースのパスです。初期のウェブではこのようなパスが、ウェブサーバー内の物理的なファイルの場所を表していました。現代のパスはたいてい物理的な実情と関係がない、ウェブサーバーによって制御される抽象的なものになっています。 - -### クエリー - -- ![引数](mdn-url-parameters@x2.png) - - : `?key1=value1&key2=value2` は、ウェブサーバーに提供する追加の引数です。この引数は `&` 記号で区切られた、キーと値のペアのリストです。ウェブサーバーは、ユーザーへリソースを返す前に追加の処理を行うために、この引数を使用できます。それぞれのウェブサーバーは引数について独自の規則を持っており、特定のウェブサーバーが引数を扱う方法を知るために唯一信頼できる方法は、ウェブサーバーの所有者に尋ねることです。 - -### フラグメント - -- ![アンカー](mdn-url-anchor@x2.png) - - : `#SomewhereInTheDocument` は、リソース自体の別の場所へのアンカーです。アンカーはリソース内の一種の「ブックマーク」を表しており、「ブックマーク」地点にあるコンテンツを表示するようにブラウザーへ指示を与えます。例えば HTML 文書では、ブラウザーはアンカーが定義されている位置にスクロールします。動画や音声の文書では、ブラウザーはアンカーが示す位置への移動を試みます。 # より後の部分はフラグメント識別子としても知られており、リクエストでサーバーには送信されないことは注目に値します。 - -## 使用上のメモ - -{{Glossary("HTML")}} コンテンツの中で URL を使用するとき、一般に使うことができる URL スキームはわずかです。サブリソースを参照する場合 — つまり、最初は巨大な文書の一部だけを使用する場合 — は、 HTTP 及び HTTPS スキームしか使用することができません。加えて、ブラウザーはセキュリティ上の理由から、 FTP を使用したサブリソースの読み込みの対応を削除しつつあります。 - -FTP は最上位では利用できますが (ブラウザーの URL バーに直接入力したり、リンクの対象としたり)、ブラウザーによっては FTP コンテンツの読み込みを他のアプリケーションに委譲するかもしれません。 - -## 例 - -```url -https://developer.mozilla.org/ja/docs/Learn -tel:+1-816-555-1212 -git@github.com:mdn/browser-compat-data.git -ftp://example.org/resource.txt -urn:isbn:9780141036144 -mailto:help@supercyberhelpdesk.info -``` - -## 仕様書 - -{{Specifications}} - -## 関連情報 - -- [URL とは何か](/ja/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL) -- [IANA list of URI schemes](https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml) diff --git a/files/ja/web/http/headers/alt-svc/index.md b/files/ja/web/http/headers/alt-svc/index.md index 3c7a5c82a5304d..e5258d94f27bd1 100644 --- a/files/ja/web/http/headers/alt-svc/index.md +++ b/files/ja/web/http/headers/alt-svc/index.md @@ -1,15 +1,19 @@ --- title: Alt-Svc slug: Web/HTTP/Headers/Alt-Svc +l10n: + sourceCommit: 9231a7046973685f4600e1891fa644ecce41ef3b --- {{HTTPSidebar}} -**`Alt-Svc`** は HTTP のレスポンスヘッダーで、同じリソースに到達できる代替サービスを宣伝するために使用します。 代替サービスは、プロトコル/ホスト/ポートの組み合わせによって定義します。 +**`Alt-Svc`** は HTTP のヘッダーで、将来のリクエスト時に、そのオリジンのサーバーとして別のネットワーク上の場所(「代替サービス」)を扱うことができることをサーバーが示すことができます。 + +これにより、実行中のリクエストに影響を与えることなく、新しいプロトコルのバージョンを宣伝することができ、またサーバーのトラフィックを制御するのにも役立ちます。代替サービスを使用しても、エンドユーザーには見えません。URL やリクエストのオリジンのサーバーは変更されず、余分なラウンドトリップも発生しません。 ## 構文 -``` +```http Alt-Svc: clear Alt-Svc: =; ma= Alt-Svc: =; ma=; persist=1 @@ -18,19 +22,22 @@ Alt-Svc: =; ma=; persist=1 - `clear` - : 特別な値 `clear` は、そのオリジンのすべての代替を無効にすることをオリジンが要求することを示します。 - `` - - : {{Glossary("ALPN")}} プロトコル識別子。 例には、HTTP/2 の h2 および HTTP/3 プロトコルのドラフト 25 の h3-25 が含まれています。 + - : {{Glossary("ALPN")}} プロトコル識別子。例えば、HTTP/2 の `h2` および HTTP/3 プロトコルのドラフト 25 の `h3-25` があります。 - `` - : 任意のホストのオーバーライド、コロン、および必須のポート番号で構成される代替機関を指定する引用符付きの文字列。 -- `ma=`{{Optional_Inline}} - - : 代替サービスが新鮮であると見なす秒数。 省略した場合のデフォルトは 24 時間です。 代替サービスのエントリは、最大で _\_ から({{ httpheader("Age") }} ヘッダーからの)レスポンスの経過時間を差し引いた秒数までキャッシュできます。 キャッシュされたエントリが期限切れになると、クライアントは新しい接続にこの代替サービスを使用できなくなります。 -- `persist=1`{{Optional_Inline}} - - : 通常、キャッシュされた代替サービスエントリは、ネットワーク構成の変更時にクリアされます。 persist=1 パラメータを使用すると、そのような変更によってエントリが削除されなくなります。 +- `ma=` {{optional_inline}} + - : 代替サービスが新鮮であると見なす秒数。 省略した場合の既定値 24 時間です。 代替サービスの項目は、最大で _\_ から({{httpheader("Age")}} ヘッダーからの)レスポンスの経過時間を差し引いた秒数までキャッシュできます。 + キャッシュされた項目が期限切れになると、クライアントは新しい接続にこの代替サービスを使用できなくなります。 +- `persist=1` {{optional_inline}} + - : 通常、キャッシュされた代替サービス項目は、ネットワーク構成の変更時にクリアされます。 + `persist=1` 引数を使用すると、そのような変更によって項目が削除されなくなります。 -区切り文字としてカンマを使用して、単一の `Alt-Svc` ヘッダーで複数のエントリを指定できます。 その場合、早期のエントリーがより望ましいと考えられます。 +区切り文字としてカンマを使用して、単一の `Alt-Svc` ヘッダーで複数の項目を指定できます。 +その場合、先にある項目がより望ましいとみなされます。 ## 例 -``` +```http Alt-Svc: h2=":443"; ma=2592000; Alt-Svc: h2=":443"; ma=2592000; persist=1 Alt-Svc: h2="alt.example.com:443", h2=":443" @@ -39,9 +46,7 @@ Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600 ## 仕様書 -| 仕様書 | 状態 | 備考 | -| ------------- | -------- | -------- | -| {{RFC(7838)}} | IETF RFC | 初回定義 | +{{Specifications}} ## ブラウザーの互換性 @@ -49,4 +54,4 @@ Alt-Svc: h3-25=":443"; ma=3600, h2=":443"; ma=3600 ## 関連情報 -- [ウェブ上のリソースの識別](/ja/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) +- [Alternative Services](https://www.mnot.net/blog/2016/03/09/alt-svc) (HTTP Working Group 代表 Mark Nottingham による `Alt-Svc` についての記事) diff --git a/files/ja/web/http/headers/content-security-policy/index.md b/files/ja/web/http/headers/content-security-policy/index.md index 47f34b4ec25273..73b605401bcc21 100644 --- a/files/ja/web/http/headers/content-security-policy/index.md +++ b/files/ja/web/http/headers/content-security-policy/index.md @@ -2,7 +2,7 @@ title: Content-Security-Policy slug: Web/HTTP/Headers/Content-Security-Policy l10n: - sourceCommit: de2a90fe1c1cd578faaee3c7e2ff7c96bae9a545 + sourceCommit: bb48907e64eb4bf60f17efd7d39b46c771d220a0 --- {{HTTPSidebar}} @@ -43,16 +43,18 @@ Content-Security-Policy: ; - : [ウェブワーカー](/ja/docs/Web/API/Web_Workers_API)と、{{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素によって読み込まれる入れ子の閲覧コンテキストのための有効なソースを定義します。 > [!WARNING] - > 複合した閲覧コンテキストやワーカーを制御するには、 **`child-src`** の代わりに、それぞれ {{CSP("frame-src")}} および {{CSP("worker-src")}} を使用してください。 + > 入れ子になった閲覧コンテキストやワーカーを制御するには、 **`child-src`** の代わりに、それぞれ {{CSP("frame-src")}} および {{CSP("worker-src")}} を使用してください。 - {{CSP("connect-src")}} - : スクリプトインターフェイスによって読み込まれる URL を制限します。 - {{CSP("default-src")}} - - : 別の {{Glossary("Fetch directive", "Fetch ディレクティブ")}}に対する代替として提供します。 + - : 別の {{Glossary("Fetch directive", "フェッチディレクティブ")}}に対する代替として提供します。 +- {{CSP("fenced-frame-src")}} {{experimental_inline}} + - : {{HTMLElement("fencedframe")}} 要素に読み込む入れ子になった閲覧コンテキストの有効なソースを指定します。 - {{CSP("font-src")}} - : {{cssxref("@font-face")}} によって読み込まれるフォントのための有効なソースを指定します。 - {{CSP("frame-src")}} - - : {{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素によって読み込まれる入れ子のコンテンツの閲覧のための有効なソースを指定します。 + - : {{HTMLElement("frame")}} や {{HTMLElement("iframe")}} のような要素によって読み込まれた入れ子のコンテンツの閲覧のための有効なソースを指定します。 - {{CSP("img-src")}} - : 画像やファビコンのための有効なソースを定義します。 - {{CSP("manifest-src")}} @@ -61,11 +63,11 @@ Content-Security-Policy: ; - : {{HTMLElement("audio")}}、{{HTMLElement("video")}}、{{HTMLElement("track")}} 要素によって読み込むメディアのための有効なソースを指定します。 - {{CSP("object-src")}} - - : {{HTMLElement("object")}}、 {{HTMLElement("embed")}}、{{HTMLElement("applet")}} 要素のための有効なソースを指定します。 + - : {{HTMLElement("object")}} や {{HTMLElement("embed")}} 要素のための有効なソースを指定します。 > **メモ:** `object-src` で制御される要素は、おそらく古い HTML 要素に該当すると見なされ、標準化された新しい機能が利用できません(セキュリティ属性の `sandbox` や `` の `allow` など)。従って、このフェッチディレクティブで制限を掛けることが**推奨されます** (例えば、可能であれば `object-src 'none'` を設定するなど)。 -- {{CSP("prefetch-src")}} {{experimental_inline}} +- {{CSP("prefetch-src")}} {{Deprecated_Inline}} {{Non-standard_Inline}} - : 事前にフェッチされるか描画される有効なソースを指定します。 - {{CSP("script-src")}} - : JavaScript および WebAssembly のための有効なソースを指定します。 @@ -98,9 +100,7 @@ Content-Security-Policy: ; - {{CSP("form-action")}} - : 指定のコンテキストからフォームの送信先として使用される URL を制限します。 - {{CSP("frame-ancestors")}} - - : {{HTMLElement("frame")}}、{{HTMLElement("iframe")}}、{{HTMLElement("object")}}、{{HTMLElement("embed")}}、{{HTMLElement("applet")}} によってページに埋め込まれた有効な親を指定します。 -- {{CSP("navigate-to")}} {{experimental_inline}} - - : {{HTMLElement("form")}} ({{CSP("form-action")}} が指定されていない場合)、{{HTMLElement("a")}}、{{DOMxRef("window.location")}}、{{DOMxRef("window.open")}} など、あらゆる方法で文書からナビゲーションを行うことができる URL を制限します。 + - : {{HTMLElement("frame")}}、{{HTMLElement("iframe")}}、{{HTMLElement("object")}}、{{HTMLElement("embed")}} によってページに埋め込まれた有効な親を指定します。 ### 報告ディレクティブ @@ -119,7 +119,8 @@ Content-Security-Policy: ; > {{CSP("report-to")}} に対応しているブラウザーでは、 **`report-uri`** ディレクティブは無視されます。 - {{CSP("report-to")}} - - : `SecurityPolicyViolationEvent` を発生させます。 + - : CSP 違反情報を送信するための報告エンドポイントまたはエンドポイントグループを識別するトークンをブラウザーに提供します。 + トークンが表すエンドポイントは、他にも {{HTTPHeader("Reporting-Endpoints")}} などの HTTP ヘッダーでで指定されている場合があります。 ### その他のディレクティブ @@ -129,16 +130,12 @@ Content-Security-Policy: ; - {{CSP("trusted-types")}} {{experimental_inline}} - : [Trusted Types](https://w3c.github.io/trusted-types/dist/spec/) ポリシーのホワイトリストを指定するために使用します (Trusted Types は、アプリケーションが DOM XSS インジェクションシンクをロックダウンして、文字列の代わりにスプーフィング不可能な型付きの値のみを受け入れるようにします)。 - {{CSP("upgrade-insecure-requests")}} - - : 安全でない URL (HTTP で提供されているもの) をすべて安全な URL (HTTPS で提供されているもの) に置き換えたかのように扱うようにユーザエージェントに指示します。このディレクティブは、書き換えが必要な安全でない古い URL が大量にあるウェブサイトを対象としています。 + - : 安全でない URL (HTTP で提供されているもの) をすべて安全な URL (HTTPS で提供されているもの) に置き換えたかのように扱うようにユーザーエージェントに指示します。このディレクティブは、書き換えが必要な安全でない古い URL が大量にあるウェブサイトを対象としています。 ### 非推奨のディレクティブ - {{CSP("block-all-mixed-content")}} {{deprecated_inline}} - : ページが HTTPS を使用して読み込まれた際に、 HTTP を使用して資産を読み込むことを防止します。 -- {{CSP("plugin-types")}} {{deprecated_inline}} {{Non-standard_Inline}} - - : 読み込まれるリソースの種類を限定することで、文書に埋め込まれるプラグインの組を制限します。 -- {{CSP("referrer")}} {{deprecated_inline}} {{non-standard_inline}} - - : ページから離れる際の [Referer](/ja/docs/Web/HTTP/Headers/Referer) (綴り注意) ヘッダー内の情報を指定するために使用されていました。代わりに {{HTTPHeader("Referrer-Policy")}} ヘッダーを使用してください。 ## 値 @@ -155,17 +152,20 @@ Content-Security-Policy: ; - : ページ内のスクリプトに付随する nonce やハッシュによって与えられた信頼は、それが読み込むスクリプトに拡張されます。 - `'report-sample'` - : 違反したコードのサンプルを違反レポートに含めて記載することを要求する。 +- `'inline-speculation-rules'` + - : スクリプトに[投機ルール](/ja/docs/Web/API/Speculation_Rules_API)を含めることができます([` ``` @@ -73,47 +81,48 @@ parentDiv.insertBefore(newNode, sp2); // Generate "Type Error: Invalid Argument" ``` -没有 `insertAfter()`。不过,可以使用 `insertBefore` 和 {{domxref("Node.nextSibling")}} 来模拟它。 - -在前一个例子中,可使用下面代码将 `sp1` 插入到 `sp2` 之后: - -```js -parentDiv.insertBefore(sp1, sp2.nextSibling); -``` - -如果 `sp2` 没有下一个节点,则它肯定是最后一个节点,则 `sp2.nextSibling` 返回 `null`,且 `sp1` 被插入到子节点列表的最后面(即 `sp2` 后面)。 +> [!NOTE] +> 没有 `insertAfter()` 方法。可以通过将 `insertBefore` 方法与 {{domxref("Node.nextSibling")}} 结合使用来模拟实现。在前面的例子中,可以使用以下方法在 `sp2` 后面插入 `sp1`: +> +> ```js +> parentDiv.insertBefore(sp1, sp2.nextSibling); +> ``` +> +> 如果 `sp2` 没有下一个兄弟节点,那么它必须是最后一个子节点——`sp2.nextSibling` 返回 `null`,此时 `sp1` 将被插入到子节点列表的末尾(紧接在 `sp2` 之后)。 ### 示例 3 -在第一个子元素的前面插入一个元素,可使用 [firstChild](/zh-CN/docs/DOM/Node.firstChild) 属性。 +使用 {{domxref("Node/firstChild", "firstChild")}} 属性,在第一个子元素之前插入一个元素。 ```js -//插入节点之前,要获得节点的引用 -var parentElement = document.getElementById("parentElement"); -//获得第一个子节点的引用 -var theFirstChild = parentElement.firstChild; +// 获取父元素 +let parentElement = document.getElementById("parentElement"); +// 获取父元素的第一个子元素 +let theFirstChild = parentElement.firstChild; -//创建新元素 -var newElement = document.createElement("div"); +// 创建新元素 +let newElement = document.createElement("div"); -//在第一个子节点之前插入新元素 +// 在第一个子元素之前插入新元素 parentElement.insertBefore(newElement, theFirstChild); ``` -当元素没有首节点时,`firstChild` 返回 `null`。该元素仍然会被插入到父元素中,位于最后一个节点后面。又由于父元素没有第一个子节点,也没有最后一个子节点。最终,新元素成为唯一的子元素。 +如果元素没有第一个子元素,则 `firstChild` 为 `null`。该元素仍然会被追加到父元素的最后一个子元素之后。 + +由于父元素没有第一个子元素,所以也没有最后一个子元素。因此,新插入的元素是*唯一*的元素。 ## 规范 @@ -130,4 +139,6 @@ parentElement.insertBefore(newElement, theFirstChild); - {{domxref("Node.appendChild()")}} - {{domxref("Node.hasChildNodes()")}} - {{domxref("Element.insertAdjacentElement()")}} -- {{domxref("ParentNode.prepend()")}} +- {{domxref("Element.prepend()")}} +- {{domxref("Element.before()")}} +- {{domxref("Element.after()")}} diff --git a/files/zh-cn/web/api/range/endoffset/index.md b/files/zh-cn/web/api/range/endoffset/index.md index 28695a916f895e..62f8cd70ea85a4 100644 --- a/files/zh-cn/web/api/range/endoffset/index.md +++ b/files/zh-cn/web/api/range/endoffset/index.md @@ -1,24 +1,24 @@ --- -title: Range.endOffset +title: Range:endOffset 属性 slug: Web/API/Range/endOffset +l10n: + sourceCommit: c58e8c1dd6ecbcb63894c7dd17fb9495b9511b4e --- {{ApiRef("DOM")}} -只读属性 **`Range.endOffset`** 返回代表 `Range` 结束位置在 {{domxref("Range.endContainer")}} 中的偏移值的数字。 +**`Range.endOffset`** 只读属性返回一个数字,表示 {{domxref("Range.endContainer")}} 在 {{domxref("Range")}} 中的结束位置。 -如果 `endContainer` 的 {{domxref("Node")}} 类型为 {{domxref("Text")}}, {{domxref("Comment")}},或 {{domxref("CDATASection")}},偏移值是 `endContainer` 节点开头到 {{domxref("Range")}} 末尾的总字符个数。对其他类型的 {{domxref("Node")}} , `endOffset` 指 `endContainer` 开头到 {{domxref("Range")}} 末尾的总 {{domxref("Node")}} 个数。如需修改 `endOffset` 的值,使用 {{domxref("Range.setEnd")}} 方法。 +如果 `endContainer` 是 {{domxref("Text")}}、{{domxref("Comment")}} 或 {{domxref("CDATASection")}} 类型的 {{domxref("Node")}},那么偏移量是从 `endContainer` 的起始位置到 {{domxref("Range")}} 边界点之间的字符数。对于其他的 {{domxref("Node")}} 类型,`endOffset` 是从 `endContainer` 的起始位置到 {{domxref("Range")}} 边界点之间的子节点数。此属性为只读。要更改 {{domxref("Range")}} 的 `endOffset` 值,请使用 {{domxref("Range.setEnd")}} 方法。 -## 语法 +## 值 -``` -endRangeOffset = range.endOffset; -``` +数字。 ## 示例 ```js -var range = document.createRange(); +const range = document.createRange(); range.setStart(startNode, startOffset); range.setEnd(endNode, endOffset); @@ -35,4 +35,4 @@ endRangeOffset = range.endOffset; ## 参见 -- [The DOM interfaces index](/zh-CN/docs/DOM/DOM_Reference) +- [DOM 接口索引](/zh-CN/docs/Web/API/Document_Object_Model) diff --git a/files/zh-cn/web/api/rtcpeerconnection/createdatachannel/index.md b/files/zh-cn/web/api/rtcpeerconnection/createdatachannel/index.md index 7daea809f3f6f1..17b34111e57f1a 100644 --- a/files/zh-cn/web/api/rtcpeerconnection/createdatachannel/index.md +++ b/files/zh-cn/web/api/rtcpeerconnection/createdatachannel/index.md @@ -11,8 +11,9 @@ slug: Web/API/RTCPeerConnection/createDataChannel ## 语法 -``` -dataChannel = RTCPeerConnection.createDataChannel(label[, options]); +```js-nolint +createDataChannel(label) +createDataChannel(label, options) ``` ### 参数 diff --git a/files/zh-cn/web/api/url_api/index.md b/files/zh-cn/web/api/url_api/index.md index fc85f3877d7f43..ba11e37bbf0bf9 100644 --- a/files/zh-cn/web/api/url_api/index.md +++ b/files/zh-cn/web/api/url_api/index.md @@ -41,12 +41,12 @@ addr.username = myUsername; `URL` 的 {{domxref("URL.search", "search")}} 属性包含 URL 的查询字符串部分。例如,如果 URL 是 `https://example.com/login?user=someguy&page=news`,那么 `search` 属性的值是 `?user=someguy&page=news`。你还可以使用 {{domxref("URLSearchParams")}} 对象的 {{domxref("URLSearchParams.get", "get()")}} 查找单个参数的值: -``` +```js let addr = new URL("https://example.com/login?user=someguy&page=news"); try { loginUser(addr.searchParams.get("user")); gotoPage(addr.searchParams.get("page")); -} catch(err) { +} catch (err) { showErrorMessage(err); } ``` diff --git a/files/zh-cn/web/api/vrpose/index.md b/files/zh-cn/web/api/vrpose/index.md index 6eae7550cfccd6..9967ab77a127e6 100644 --- a/files/zh-cn/web/api/vrpose/index.md +++ b/files/zh-cn/web/api/vrpose/index.md @@ -30,22 +30,20 @@ This interface is accessible through the {{domxref("VRDisplay.getPose()")}} and - {{domxref("VRPose.angularAcceleration")}} {{readonlyInline}} - : 返回当前时间戳 {{domxref("VRPose.timestamp")}} 时 {{domxref("VRDisplay")}} 的角加速度,单位为弧度/平方秒。 -## Examples +## 示例 -``` -TBD. -``` +参见 [`VRDisplay.getFrameData()`](/zh-CN/docs/Web/API/VRDisplay/getFrameData#示例) 以获取示例代码。 -## Specifications +## 规范 该 API 在旧的 [WebVR API](https://immersive-web.github.io/webvr/spec/1.1/)(已被 [WebXR Device API](https://immersive-web.github.io/webxr/) 取代)中定义。它不再有望成为标准。 在所有浏览器都实现新的 [WebXR API](/zh-CN/docs/Web/API/WebXR_Device_API/Fundamentals) 之前,建议使用框架(如:[A-Frame](https://aframe.io/)、[Babylon.js](https://www.babylonjs.com/) 或 [Three.js](https://threejs.org/))或 [polyfill](https://github.com/immersive-web/webxr-polyfill) 来开发适用于所有浏览器的 WebXR 应用程序。[\[1\]](https://developer.oculus.com/documentation/web/port-vr-xr/) -## Browser compatibility +## 浏览器兼容性 {{Compat}} -## See also +## 参见 - [WebVR API](/zh-CN/docs/Web/API/WebVR_API) diff --git a/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md b/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md index a5e06ec82cf064..49393788cb4f63 100644 --- a/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md +++ b/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md @@ -84,7 +84,7 @@ var buffer = context.createBuffer(1, 22050, 22050); 网页音频接口使用了分离式的片段储存方式:左 (L) 右 (R) 声道像这样存储: -``` +```plain LLLLLLLLLLLLLLLLRRRRRRRRRRRRRRRR(对于一个有 16 帧的音频片段) ``` @@ -92,7 +92,7 @@ LLLLLLLLLLLLLLLLRRRRRRRRRRRRRRRR(对于一个有 16 帧的音频片段) 另一种储存方式是使用交错式的片段储存方式: -``` +```plain LRLRLRLRLRLRLRLRLRLRLRLRLRLRLRLR(对于一个有 16 帧的音频片段) ``` diff --git a/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.md b/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.md index 0e3c586f959446..cf2a286efd7291 100644 --- a/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.md +++ b/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.md @@ -9,16 +9,11 @@ slug: Web/API/WebGL2RenderingContext/texImage3D ## 语法 -``` -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, GLintptr offset); - -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLCanvasElement source); -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLImageElement source); -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLVideoElement source); -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ImageBitmap source); -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ImageData source); -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ArrayBufferView? srcData); -void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ArrayBufferView srcData, srcOffset); +```js-nolint +texImage3D(target, level, internalformat, width, height, depth, border, format, type, offset) +texImage3D(target, level, internalformat, width, height, depth, border, format, type, source) +texImage3D(target, level, internalformat, width, height, depth, border, format, type, srcData) +texImage3D(target, level, internalformat, width, height, depth, border, format, type, srcData, srcOffset) ``` ### 参数 diff --git a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md index 5e0054818190bf..7cb7a512f73c24 100644 --- a/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md +++ b/files/zh-cn/web/api/webgl_api/webgl_model_view_projection/index.md @@ -489,14 +489,26 @@ MDN.multiplyPoint(copyZ, [2, 3, 4, 1]); 但是,在最后一个示例中,我们执行了 `(z + 1) * scaleFactor`: -``` +```js var scaleFactor = 0.5; var simpleProjection = [ - 1, 0, 0, 0, - 0, 1, 0, 0, - 0, 0, 1, scaleFactor, - 0, 0, 0, scaleFactor, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + scaleFactor, + 0, + 0, + 0, + scaleFactor, ]; MDN.multiplyPoint(simpleProjection, [2, 3, 4, 1]); diff --git a/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.md b/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.md index 24c3698bf57648..29086cd84b1286 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.md +++ b/files/zh-cn/web/api/webglrenderingcontext/blendfunc/index.md @@ -9,8 +9,8 @@ slug: Web/API/WebGLRenderingContext/blendFunc ## 语法 -``` -void gl.blendFunc(sfactor, dfactor); +```js-nolint +blendFunc(sfactor, dfactor) ``` ### 参数 diff --git a/files/zh-cn/web/api/webglrenderingcontext/enablevertexattribarray/index.md b/files/zh-cn/web/api/webglrenderingcontext/enablevertexattribarray/index.md index 1f6456a0bd22c7..099069c6c52029 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/enablevertexattribarray/index.md +++ b/files/zh-cn/web/api/webglrenderingcontext/enablevertexattribarray/index.md @@ -16,8 +16,8 @@ slug: Web/API/WebGLRenderingContext/enableVertexAttribArray ## 语法 -``` -void gl.enableVertexAttribArray(index); +```js-nolint +enableVertexAttribArray(index) ``` ### 参数 diff --git a/files/zh-cn/web/api/webglrenderingcontext/isenabled/index.md b/files/zh-cn/web/api/webglrenderingcontext/isenabled/index.md index d555f13ed6b381..95ae5919723bb7 100644 --- a/files/zh-cn/web/api/webglrenderingcontext/isenabled/index.md +++ b/files/zh-cn/web/api/webglrenderingcontext/isenabled/index.md @@ -9,10 +9,10 @@ slug: Web/API/WebGLRenderingContext/isEnabled 默认的,除了 `gl.DITHER`,所有的功能项都是未启用的。 -## 句法 +## 语法 -``` -void gl.isEnabled(cap); +```js-nolint +isEnabled(cap) ``` ### 参数 diff --git a/files/zh-cn/web/api/webrtc_api/protocols/index.md b/files/zh-cn/web/api/webrtc_api/protocols/index.md index 9279566d63efc8..55b7a9bc8c3b24 100644 --- a/files/zh-cn/web/api/webrtc_api/protocols/index.md +++ b/files/zh-cn/web/api/webrtc_api/protocols/index.md @@ -5,7 +5,7 @@ slug: Web/API/WebRTC_API/Protocols {{DefaultAPISidebar("WebRTC")}} -本文介绍了基于 WebRTC API 构建的协议。 +本文介绍了构建 WebRTC API 的协议。 ## ICE diff --git a/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.md b/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.md index 18fc94f2f781aa..98f3ff4eecea4e 100644 --- a/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.md +++ b/files/zh-cn/web/api/websockets_api/writing_websocket_client_applications/index.md @@ -18,11 +18,8 @@ WebSocket 客户端应用程序使用 WebSocket API 通过 WebSocket 协议与 W WebSocket 构造函数接受一个必要参数和一个可选参数: -``` -WebSocket WebSocket( - in DOMString url, - in optional DOMString protocols -); +```js +webSocket = new WebSocket(url, protocols); ``` - `url` @@ -128,31 +125,39 @@ exampleSocket.onmessage = function (event) { 解析这些收到的消息的代码可能是这样的: -``` -exampleSocket.onmessage = function(event) { +```js +exampleSocket.onmessage = function (event) { var f = document.getElementById("chatbox").contentDocument; var text = ""; var msg = JSON.parse(event.data); var time = new Date(msg.date); var timeStr = time.toLocaleTimeString(); - switch(msg.type) { + switch (msg.type) { case "id": clientID = msg.id; setUsername(); break; case "username": - text = "User " + msg.name + " signed in at " + timeStr + ""; + text = + "User " + + msg.name + + " signed in at " + + timeStr + + ""; break; case "message": text = "(" + timeStr + ") " + msg.name + ": " + msg.text + ""; break; case "rejectusername": - text = "Your username has been set to " + msg.name + " because the name you chose is in use." + text = + "Your username has been set to " + + msg.name + + " because the name you chose is in use."; break; case "userlist": var ul = ""; - for (i=0; i < msg.users.length; i++) { + for (i = 0; i < msg.users.length; i++) { ul += msg.users[i] + ""; } document.getElementById("userlistbox").innerHTML = ul; diff --git a/files/zh-cn/web/api/window/atob/index.md b/files/zh-cn/web/api/window/atob/index.md index 5cd6aec4f798d9..52a420b44af5da 100644 --- a/files/zh-cn/web/api/window/atob/index.md +++ b/files/zh-cn/web/api/window/atob/index.md @@ -49,6 +49,6 @@ const decodedData = window.atob(encodedData); // 解码 ## 参见 - [`core-js`](https://github.com/zloirock/core-js) 提供了 [`atob` 的 polyfill](https://github.com/zloirock/core-js#base64-utility-methods) -- [`data` URL](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) +- [`data` URL](/zh-CN/docs/Web/URI/Schemes/data) - {{domxref("WorkerGlobalScope.atob()")}}:相同的,但是是在 worker 作用域内的方法。 - {{domxref("Window.btoa()")}} diff --git a/files/zh-cn/web/api/window/btoa/index.md b/files/zh-cn/web/api/window/btoa/index.md index 5e34e5b27ced09..6c169dcc62d076 100644 --- a/files/zh-cn/web/api/window/btoa/index.md +++ b/files/zh-cn/web/api/window/btoa/index.md @@ -66,7 +66,7 @@ console.log(window.btoa(notOK)); // 错误 ## 参见 - [`core-js`](https://github.com/zloirock/core-js) 中有对 [`btoa` 的 polyfill](https://github.com/zloirock/core-js#base64-utility-methods) -- [`data` URL](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) +- [`data` URL](/zh-CN/docs/Web/URI/Schemes/data) - {{domxref("WorkerGlobalScope.btoa()")}}:相同的,但是是在 worker 作用域内的方法。 - {{domxref("Window.atob()")}} - {{Glossary("Base64")}} diff --git a/files/zh-cn/web/api/workerglobalscope/atob/index.md b/files/zh-cn/web/api/workerglobalscope/atob/index.md index 5ff2b6654b47da..d9014671d3a83d 100644 --- a/files/zh-cn/web/api/workerglobalscope/atob/index.md +++ b/files/zh-cn/web/api/workerglobalscope/atob/index.md @@ -49,6 +49,6 @@ const decodedData = self.atob(encodedData); // 解码 ## 参见 - [`core-js`](https://github.com/zloirock/core-js) 提供了 [`atob` 的 polyfill](https://github.com/zloirock/core-js#base64-utility-methods) -- [`data` URL](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) +- [`data` URL](/zh-CN/docs/Web/URI/Schemes/data) - {{domxref("Window.atob()")}}:相同的,但是是在窗口作用域内的方法。 - {{domxref("WorkerGlobalScope.btoa()")}} diff --git a/files/zh-cn/web/api/workerglobalscope/btoa/index.md b/files/zh-cn/web/api/workerglobalscope/btoa/index.md index 558754240259b0..6247ec67215a44 100644 --- a/files/zh-cn/web/api/workerglobalscope/btoa/index.md +++ b/files/zh-cn/web/api/workerglobalscope/btoa/index.md @@ -66,7 +66,7 @@ console.log(self.btoa(notOK)); // 错误 ## 参见 - [`core-js`](https://github.com/zloirock/core-js) 中有对 [`btoa` 的 polyfill](https://github.com/zloirock/core-js#base64-utility-methods) -- [`data` URL](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) +- [`data` URL](/zh-CN/docs/Web/URI/Schemes/data) - {{domxref("WorkerGlobalScope.atob()")}} - {{domxref("Window.atob()")}}:相同的,但是是在窗口作用域内的方法。 - {{Glossary("Base64")}} 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 83eb9c04069af2..0fa510c7388e3a 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 @@ -608,7 +608,7 @@ print_r($_FILES); 激活这些代码的语法很简单: -``` +```js AJAXSubmit(myForm); ``` diff --git a/files/zh-cn/web/css/_doublecolon_target-text/index.md b/files/zh-cn/web/css/_doublecolon_target-text/index.md index d88005ac7099ec..22092f6e849e48 100644 --- a/files/zh-cn/web/css/_doublecolon_target-text/index.md +++ b/files/zh-cn/web/css/_doublecolon_target-text/index.md @@ -5,7 +5,7 @@ slug: Web/CSS/::target-text {{CSSRef}}{{SeeCompatTable}} -**`::target-text`** [CSS](/zh-CN/docs/Web/CSS) [伪元素](/zh-CN/docs/Web/CSS/Pseudo-elements)代表了浏览器在支持[文本片段](/zh-CN/docs/Web/Text_fragments)技术时所滚动到的文字。它使得作者可以选择高亮一段文字的方式。 +**`::target-text`** [CSS](/zh-CN/docs/Web/CSS) [伪元素](/zh-CN/docs/Web/CSS/Pseudo-elements)代表了浏览器在支持[文本片段](/zh-CN/docs/Web/URI/Fragment/Text_fragments)技术时所滚动到的文字。它使得作者可以选择高亮一段文字的方式。 ```css ::target-text { @@ -44,4 +44,4 @@ slug: Web/CSS/::target-text ## 参见 -- [文本片段](/zh-CN/docs/Web/Text_fragments) +- [文本片段](/zh-CN/docs/Web/URI/Fragment/Text_fragments) diff --git a/files/zh-cn/web/css/color_value/rgb/index.md b/files/zh-cn/web/css/color_value/rgb/index.md index 19fce189d34dfb..8d67cf6386feb2 100644 --- a/files/zh-cn/web/css/color_value/rgb/index.md +++ b/files/zh-cn/web/css/color_value/rgb/index.md @@ -34,7 +34,7 @@ rgb(from hwb(120deg 10% 20%) r g calc(b + 200)) #### 绝对值语法 -```text +```plain rgb(R G B[ / A]) ``` @@ -50,7 +50,7 @@ rgb(R G B[ / A]) #### 相对值语法 -```text +```plain rgb(from R G B[ / A]) ``` diff --git a/files/zh-cn/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.md b/files/zh-cn/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.md index bd05e0939cb178..4e32cf297be0a4 100644 --- a/files/zh-cn/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.md +++ b/files/zh-cn/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.md @@ -13,31 +13,39 @@ slug: Web/CSS/CSS_selectors/Using_the_:target_pseudo-class_in_selectors 假设你想修改 URI 指向的任何 h2 元素,但是又不想把样式应用到任何其他同类型的元素,那么以下示例足够简单有用: -``` -h2:target {font-weight: bold;} +```css +h2:target { + font-weight: bold; +} ``` 同样的,将样式应用于特定的文档片段也是可行的。这是通过使用 URI 中相同的标识符实现的。例如,要在 #Example 文档片段中加入边框,我们可以通过如下代码实现: -``` -#Example:target {border: 1px solid black;} +```css +#Example:target { + border: 1px solid black; +} ``` ### 定位所有元素 如果想要创建应用于所有目标元素的样式,那么可以使用通用选择器: -``` -:target {color: red;} +```css +:target { + color: red; +} ``` ### 示例 在以下示例中,5 个链接指向了同一文档中的元素。例如,选择 "First" 链接会导致 `` 成为目标元素。注意,由于目标元素有可能会被放置到浏览器窗口的顶层,因此文档可能会跳到新的滚动位置。 -``` -... ... -... ... ... +```html +... +... +... +... ... First Second diff --git a/files/zh-cn/web/css/string/index.md b/files/zh-cn/web/css/string/index.md index 22eaa2969c64e6..ddd82b12b5108c 100644 --- a/files/zh-cn/web/css/string/index.md +++ b/files/zh-cn/web/css/string/index.md @@ -22,25 +22,25 @@ slug: Web/CSS/string ## 例子 -``` -/* Simple strings */ -"This string is demarkated by double quotes." -'This string is demarkated by single quotes.' - -/* Character escaping */ -"This is a string with \" an escaped double quote." -"This string also has \22 an escaped double quote." -'This is a string with \' an escaped single quote.' -'This string also has \27 an escaped single quote.' -"This is a string with \\ an escaped backslash." - -/* New line in a string */ -"This string has a \Aline break in it." - -/* String spanning two lines of code (these two strings will have identical output) */ -"A really long \ -awesome string" -"A really long awesome string" +```css +/* 简单字符串 */ +"该字符串用双引号括起来。" +'该字符串用单引号括起来。' + +/* 字符转义 */ +"这是一个包含转义的双引号(\")的字符串。" +"这也是一个具有转义双引号(\22)的字符串。" +'这是一个具有转义单引号(\')的字符串。' +'这也是一个具有转义单引号(\27)的字符串。' +"这是一个具有转义反斜杠(\\)的字符串。" + +/* 字符串中的换行 */ +"该字符串具有\A断行。" + +/* 跨越两行代码的字符串(这两个字符串具有相同的输出) */ +"一个非常长\ +的字符串" +"一个非常长的字符串" ``` ## 规范 diff --git a/files/zh-cn/web/css/transform-function/matrix/index.md b/files/zh-cn/web/css/transform-function/matrix/index.md index 9b76d60a1ff5bd..be67f063cbcae8 100644 --- a/files/zh-cn/web/css/transform-function/matrix/index.md +++ b/files/zh-cn/web/css/transform-function/matrix/index.md @@ -14,7 +14,7 @@ CSS 函数 `matrix()` 指定了一个由指定的 6 个值组成的 2D 变换矩 ## 语法 -``` +```css matrix(a, b, c, d, tx, ty) ``` @@ -105,22 +105,20 @@ matrix(a, b, c, d, tx, ty) -这些值表示以下函数: - -matrix( scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY() ) +这些值表示以下函数:`matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())` ## 示例 ### HTML -``` -Normal -Changed +```html +正常 +改变后 ``` ### CSS -``` +```css div { width: 80px; height: 80px; @@ -135,7 +133,7 @@ div { ### 结果 -请看英文版案例 [/zh-CN/docs/Web/CSS/transform-function/matrix#Result](/zh-CN/docs/Web/CSS/transform-function/matrix#Result) +{{EmbedLiveSample("示例", 350, 350)}} ## 规范 diff --git a/files/zh-cn/web/css/transform-function/scalex/index.md b/files/zh-cn/web/css/transform-function/scalex/index.md index 9caff36911bb43..6d30b354fb654c 100644 --- a/files/zh-cn/web/css/transform-function/scalex/index.md +++ b/files/zh-cn/web/css/transform-function/scalex/index.md @@ -15,7 +15,7 @@ slug: Web/CSS/transform-function/scaleX ## Syntax -``` +```css scaleX(s) ``` diff --git a/files/zh-cn/web/css/transform-function/translatey/index.md b/files/zh-cn/web/css/transform-function/translatey/index.md index c670f3824ff0db..17de05508dfd0a 100644 --- a/files/zh-cn/web/css/transform-function/translatey/index.md +++ b/files/zh-cn/web/css/transform-function/translatey/index.md @@ -86,9 +86,9 @@ transform: translateY(50%); -### 语法 +### 形式语法 -``` +```plain translateY({{cssxref("<length-percentage>")}}) ``` diff --git a/files/zh-cn/web/css/value_definition_syntax/index.md b/files/zh-cn/web/css/value_definition_syntax/index.md index fe4aaefa03cf85..62486c453a4bd8 100644 --- a/files/zh-cn/web/css/value_definition_syntax/index.md +++ b/files/zh-cn/web/css/value_definition_syntax/index.md @@ -48,7 +48,7 @@ CSS 中,有一些符号是可以出现的,比如斜杠 ('`/`') 或者逗号 *方括号*将数个基本元素组成一个整体,用来**强调组合的优先级**。例如: -``` +```css bold [ thin && ] ``` @@ -66,7 +66,7 @@ bold [ thin && ] *并置*是指将数个关键字、符号或类型,用空格分开写在一起。并置中所有的元素都**必须出现并且按所规定的顺序出现**。例如: -``` +```css bold , thin ``` @@ -87,7 +87,7 @@ bold , thin *“与”组合符*连接的各个部分都**必须出现,但是顺序任意**。例如: -``` +```css bold && ``` @@ -110,7 +110,7 @@ bold && *“或”组合符*表示其连接的所有组成元素是可选的,**次序任意,但是至少其中一个要出现**。“或”组合符通常用来描述[属性缩写](/zh-CN/docs/CSS/Shorthand_properties)中的各部分。 -``` +```css <'border-width'> || <'border-style'> || <'border-color'> ``` @@ -132,7 +132,7 @@ bold && *“互斥”组合符*表示各组成部分中只能**恰好出现一个**,通常用来分隔一个属性的所有可选值。例如: -``` +```css | | left | center | right | top | bottom ``` @@ -165,7 +165,7 @@ bold && *星号*表示可以出现**零次(即不出现),一次,或任意多次**。例如: -``` +```css bold smaller* ``` @@ -184,7 +184,7 @@ bold smaller* *加号*表示可以出现**一次或多次**。例如: -``` +```css bold smaller+ ``` @@ -203,7 +203,7 @@ bold smaller+ *问号*表示可选,即出现**零次或一次**。例如: -``` +```css bold smaller? ``` @@ -221,7 +221,7 @@ bold smaller? *大括号*包含两个以逗号分隔的整数 A 与 B,表示**最少出现 A 次,且最多出现 B 次**。例如: -``` +```css bold smaller{1,3} ``` @@ -241,7 +241,7 @@ bold smaller{1,3} *井号*表示**可以出现一次或多次**,与*加号*相似。但是其多次出现必须**以逗号分隔**。例如: -``` +```css bold smaller# ``` @@ -261,7 +261,7 @@ bold smaller# 组后面的叹号表示该组是必需的,并且至少产生一个值;即使组内项目的语法允许省略全部的值,也至少要保留一个值。 -``` +```css [ bold? smaller? ]! ``` diff --git a/files/zh-cn/web/html/element/a/index.md b/files/zh-cn/web/html/element/a/index.md index 51c38c53f9bc28..e3e2b0d4fa6df1 100644 --- a/files/zh-cn/web/html/element/a/index.md +++ b/files/zh-cn/web/html/element/a/index.md @@ -23,7 +23,7 @@ slug: Web/HTML/Element/a - {{HTTPHeader("Content-Disposition")}} HTTP 标头。 - URL [路径](/zh-CN/docs/Web/API/URL/pathname)的最后一段。 - - {{Glossary("MIME_type", "媒体类型")}}。来自 {{HTTPHeader("Content-Type")}} 标头,[`data:` URL](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) 的开头,或 [`blob:` URL](/zh-CN/docs/Web/API/URL/createObjectURL_static) 的 {{domxref("Blob.type")}}。 + - {{Glossary("MIME_type", "媒体类型")}}。来自 {{HTTPHeader("Content-Type")}} 标头,[`data:` URL](/zh-CN/docs/Web/URI/Schemes/data) 的开头,或 [`blob:` URL](/zh-CN/docs/Web/API/URL/createObjectURL_static) 的 {{domxref("Blob.type")}}。 - `filename`:决定文件名的值。`/` 和 `\` 被转化为下划线(`_`)。文件系统可能会阻止文件名中其他的字符,因此浏览器会在必要时适当调整文件名。 @@ -41,7 +41,7 @@ slug: Web/HTML/Element/a - : 超链接所指向的 URL。链接不限于基于 HTTP 的 URL——它们可以使用浏览器支持的任何 URL 协议: - 使用文档片段链接到页面的某一段 - - 使用[文本片段](/zh-CN/docs/Web/Text_fragments)链接到某一段文字 + - 使用[文本片段](/zh-CN/docs/Web/URI/Fragment/Text_fragments)链接到某一段文字 - 使用媒体片段链接到某个媒体文件 - 使用 `tel:` URL 链接到一个电话号码 - 使用 `mailto:` URL 链接到一个邮箱地址 @@ -520,4 +520,4 @@ document - {{CSSxRef(":link")}} 是一个 CSS 伪类,将匹配 `` 元素,其 `href` 属性中的 URL 用户尚未访问。 - {{CSSxRef(":visited")}} 是一个 CSS 伪类,将匹配 `` 元素,其 `href` 属性中的 URL 被用户在过去访问过。 - {{CSSxRef(":any-link")}} 是一个 CSS 伪类,将匹配带有 `href` 属性的 `` 元素。 -- [文本片段](/zh-CN/docs/Web/Text_fragments)是添加到 URL 的用户代理指令,允许内容作者链接到页面上的特定文本,而不需要 ID。 +- [文本片段](/zh-CN/docs/Web/URI/Fragment/Text_fragments)是添加到 URL 的用户代理指令,允许内容作者链接到页面上的特定文本,而不需要 ID。 diff --git a/files/zh-cn/web/html/global_attributes/id/index.md b/files/zh-cn/web/html/global_attributes/id/index.md index e4197bc0bfa002..0ab07a64fe5de3 100644 --- a/files/zh-cn/web/html/global_attributes/id/index.md +++ b/files/zh-cn/web/html/global_attributes/id/index.md @@ -5,10 +5,14 @@ slug: Web/HTML/Global_attributes/id {{HTMLSidebar("Global_attributes")}} -**`id`** [全局属性](/zh-CN/docs/Web/HTML/Global_attributes)定义了一个全文档唯一的标识符(ID)。它用于在链接(使用[片段](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web#片段))、脚本和样式(通过 {{glossary("CSS")}})中辨识元素。 +**`id`** [全局属性](/zh-CN/docs/Web/HTML/Global_attributes)定义了一个全文档唯一的标识符(ID)。 {{EmbedInteractiveExample("pages/tabbed/attribute-id.html","tabbed-shorter")}} +## 描述 + +它用于在链接(使用[片段](/zh-CN/docs/Web/URI#片段))、脚本和样式(通过 {{glossary("CSS")}})中辨识元素。 + > [!WARNING] > 该属性的值是一个不透明(opaque)字符串,这意味着网页开发者不能使用它来传递人类可读的信息。然而,具有一定可读性的 ID(如使用 `ticket-18659` 而不是 `r45tgfe-freds&$@`)可以有助于理解代码。 diff --git a/files/zh-cn/web/http/basics_of_http/identifying_resources_on_the_web/index.md b/files/zh-cn/web/http/basics_of_http/identifying_resources_on_the_web/index.md deleted file mode 100644 index 49efe7a29fa56f..00000000000000 --- a/files/zh-cn/web/http/basics_of_http/identifying_resources_on_the_web/index.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: 标识互联网上的内容 -slug: Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web ---- - -{{HTTPSidebar}} - -HTTP 请求的内容通称为"资源"。”资源“这一概念非常宽泛,它可以是一份文档,一张图片,或所有其他你能够想到的格式。每个资源都由一个 ({{Glossary("URI")}}) 来进行标识。 - -一般情况下,资源的名称和位置由同一个 URL(统一资源定位符,它是 URI 的一种)来标识。也有某些特殊情况,资源的名称和位置由不同的 URI 进行标识:例如,待请求的资源希望客户端从另外一个位置访问它。我们可以使用一个特定的首部字段,{{HTTPHeader("Alt-Svc")}},来指示这种情况。 - -## URLs 与 URNs - -### URLs - -URI 的最常见形式是统一资源定位符 ({{Glossary("URL")}}),它也被称为 _Web 地址_。 - -```plain -https://developer.mozilla.org -https://developer.mozilla.org/zh-CN/docs/Learn/ -https://developer.mozilla.org/zh-CN/search?q=URL -``` - -在浏览器的地址栏中输入上述任一地址,浏览器就会加载相应的网页(资源)。 - -URL 由多个必须或可选的组件构成。下面给出了一个复杂的 URL: - -```plain -http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument -``` - -### URNs - -URN 是另一种形式的 URI,它通过特定命名空间中的唯一名称来标识资源。 - -```plain -urn:isbn:9780141036144 -urn:ietf:rfc:7230 -``` - -上面两个 URN 标识了下面的资源: - -- 乔治·奥威尔所著的《1984》 -- IETF 规范 7230,超文本传输 协议 (HTTP/1.1):Message Syntax and Routing. - -## 统一资源标识符的语法 (URI) - -### 方案或协议 - -- ![Protocol](mdn-url-protocol@x2.png) - - : `http://`告诉浏览器使用何种协议。对于大部分 Web 资源,通常使用 HTTP 协议或其安全版本,HTTPS 协议。另外,浏览器也知道如何处理其他协议。例如, `mailto:` 协议指示浏览器打开邮件客户端;`ftp:`协议指示浏览器处理文件传输。常见的方案有: - -| 方案 | 描述 | -| ----------- | ------------------------------------------------------------------ | -| data | [Data URIs](/zh-CN/docs/Web/HTTP/data_URIs) | -| file | 指定主机上文件的名称 | -| ftp | [文件传输协议](/zh-CN/docs/Glossary/FTP) | -| http/https | [超文本传输 协议/安全的超文本传输协议](/zh-CN/docs/Glossary/HTTP) | -| mailto | 电子邮件地址 | -| ssh | 安全 shell | -| tel | 电话 | -| urn | 统一资源名称 | -| view-source | 资源的源代码 | -| ws/wss | (加密的)[WebSocket](/zh-CN/docs/WebSockets) 连接 | - -### 主机 - -- ![Domaine Name](mdn-url-domain@x2.png) - - : `www.example.com` 既是一个域名,也代表管理该域名的机构。它指示了需要向网络上的哪一台主机发起请求。当然,也可以直接向主机的 {{Glossary("IP address")}} 地址发起请求。但直接使用 IP 地址的场景并不常见。 - -### 端口 - -- ![Port](mdn-url-port@x2.png) - - : `:80` 是端口。它表示用于访问 Web 服务器上资源的技术“门”。如果访问的该 Web 服务器使用 HTTP 协议的标准端口(HTTP 为 80,HTTPS 为 443)授予对其资源的访问权限,则通常省略此部分。否则端口就是 URI 必须的部分。 - -### 路径 - -- ![Path to the file](mdn-url-path@x2.png) - - : `/path/to/myfile.html` 是 Web 服务器上资源的路径。在 Web 的早期,类似这样的路径表示 Web 服务器上的物理文件位置。现在,它主要是由没有任何物理实体的 Web 服务器抽象处理而成的。 - -### 查询 - -- ![Parameters](mdn-url-parameters@x2.png) - - : `?key1=value1&key2=value2` 是提供给 Web 服务器的额外参数。这些参数是用 & 符号分隔的键/值对列表。Web 服务器可以在将资源返回给用户之前使用这些参数来执行额外的操作。每个 Web 服务器都有自己的参数规则,想知道特定 Web 服务器如何处理参数的唯一可靠方法是询问该 Web 服务器所有者。 - -### 片段 - -- ![Anchor](mdn-url-anchor@x2.png) - - : `#SomewhereInTheDocument` 是资源本身的某一部分的一个锚点。锚点代表资源内的一种“书签”,它给予浏览器显示位于该“加书签”点的内容的指示。例如,在 HTML 文档上,浏览器将滚动到定义锚点的那个点上;在视频或音频文档上,浏览器将转到锚点代表的那个时间。值得注意的是 # 号后面的部分,也称为片段标识符,永远不会与请求一起发送到服务器。 - -## 示例 - -```plain -https://developer.mozilla.org/zh-CN/docs/Learn -tel:+1-816-555-1212 -git@github.com:mdn/browser-compat-data.git -ftp://example.org/resource.txt -urn:isbn:9780141036144 -``` - -## 规范 - -{{Specifications}} - -## 参见 - -- [What is a URL?](/zh-CN/docs/Learn/Common_questions/What_is_a_URL) -- [IANA list of URI schemes](http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml) diff --git a/files/zh-cn/web/http/basics_of_http/index.md b/files/zh-cn/web/http/basics_of_http/index.md index 8425de9edab292..7b9cc470305aea 100644 --- a/files/zh-cn/web/http/basics_of_http/index.md +++ b/files/zh-cn/web/http/basics_of_http/index.md @@ -13,18 +13,10 @@ HTTP 是一个拓展性非常好的协议。它依赖于资源或统一资源定 - : 描述了什么是 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/HTTP/Resources_and_URIs) - - : 简单介绍了资源,标示符和 Web 位置的概念。 -- [辨别 Web 资源](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) - - : 描述了 Web 资源是怎样被引用和找到的。 -- [数据 URL](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) - - : 一种特殊的 URI,它直接包含了资源的内容。数据 URL 使用起来非常方便,但也有一些弊端。 -- [资源 URL](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Resource_URLs) {{Non-standard_Inline}} - - : 资源 URL(以 `resource` 前缀)是被 Firefox 和 Firefox 浏览器拓展插件用来内在地加载资源,当然有些资源在浏览器连接的网站上存在的。 +- [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 标准实现这一过程的。 -- [在 www 和非 www URL 间选择](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs) - - : 在是否使用 www 前缀的域名这一问题上,本文解释了不同选择的影响,并给出了具体的实施方法。 - [HTTP 会话流程](/zh-CN/docs/Web/HTTP/Session) - : 本文描述了一个经典的 HTTP 会话:当你在浏览器中点击一个链接或在网页中加载一张图片时,背后到底发生了什么。 - [HTTP 消息](/zh-CN/docs/Web/HTTP/Messages) diff --git a/files/zh-cn/web/http/cors/errors/corsdisabled/index.md b/files/zh-cn/web/http/cors/errors/corsdisabled/index.md index 97ed4a2c79b68e..cc536bca815182 100644 --- a/files/zh-cn/web/http/cors/errors/corsdisabled/index.md +++ b/files/zh-cn/web/http/cors/errors/corsdisabled/index.md @@ -7,7 +7,7 @@ slug: Web/HTTP/CORS/Errors/CORSDisabled ## 原因 -``` +```plain 原因:CORS disabled ``` diff --git a/files/zh-cn/web/http/cors/errors/index.md b/files/zh-cn/web/http/cors/errors/index.md index ab1845ddc6421d..8047cb6a29d7e0 100644 --- a/files/zh-cn/web/http/cors/errors/index.md +++ b/files/zh-cn/web/http/cors/errors/index.md @@ -20,7 +20,7 @@ slug: Web/HTTP/CORS/Errors 错误消息的文本将类似于以下内容: -``` +```plain Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://some-url-here. (Reason: additional information here). diff --git a/files/zh-cn/web/http/headers/alt-svc/index.md b/files/zh-cn/web/http/headers/alt-svc/index.md index a9e5565f38c006..3b00f94aed1f28 100644 --- a/files/zh-cn/web/http/headers/alt-svc/index.md +++ b/files/zh-cn/web/http/headers/alt-svc/index.md @@ -9,17 +9,21 @@ slug: Web/HTTP/Headers/Alt-Svc ## 语法 -```plain +```http Alt-Svc: clear -Alt-Svc: ; ma= -Alt-Svc: ; ma=; persist=1 +Alt-Svc: =; ma= +Alt-Svc: =; ma=; persist=1 ``` -- `` - - : 使用分号隔离的访问方式列表,格式形如:`=":"`。这里的``应当是一个有效的 {{Glossary("ALPN")}} 标识符。 -- ``{{Optional_Inline}} +- `clear` + - : 特殊值 `clear` 表示来源请求清除该源的所有备选服务。 +- `` + - : {{Glossary("ALPN")}} 协议标识符。例如,`h2` 代表 HTTP/2,`h3-25` 代表 HTTP/3 的第 25 个草案。 +- `` + - : 指定备选的权威的用引号包裹的字符串,包含可选的主机覆盖、冒号和必须的端口号。 +- `ma=`{{Optional_Inline}} - : 当前访问方式的有效期,超过该时间后,服务端将不保证该访问方式依旧可用,客户端应当重新获取更新后的 Alt-Svc 列表。单位为秒,默认值为 24 小时(86400)。 -- `persist`{{Optional_Inline}} +- `persist=1`{{Optional_Inline}} - : 可选参数,用于标识当前访问方式在网络环境改变时或者会话间始终保持。 ## 规范 @@ -30,6 +34,6 @@ Alt-Svc: ; ma=; persist=1 {{Compat}} -## 引用 +## 参见 -- [Identifying resources on the Web](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web)\[在 Web 世界标记资源] +- [备选服务](https://www.mnot.net/blog/2016/03/09/alt-svc)(HTTP 工作组主席 Mark Nottingham 撰写的关于 `Alt-Svc` 的文章) diff --git a/files/zh-cn/web/http/headers/content-encoding/index.md b/files/zh-cn/web/http/headers/content-encoding/index.md index 955b999e9775c9..db1e9d38fada95 100644 --- a/files/zh-cn/web/http/headers/content-encoding/index.md +++ b/files/zh-cn/web/http/headers/content-encoding/index.md @@ -26,7 +26,7 @@ slug: Web/HTTP/Headers/Content-Encoding ## 语法 -``` +```http Content-Encoding: gzip Content-Encoding: compress Content-Encoding: deflate @@ -53,13 +53,13 @@ Content-Encoding: deflate, gzip 客户端可以事先声明一系列可以支持的压缩模式,与请求一齐发送。{{HTTPHeader("Accept-Encoding")}} 这个首部就是用来进行这种内容编码形式协商的: -``` +```http Accept-Encoding: gzip, deflate ``` 服务器在 `Content-Encoding` 响应首部提供了实际采用的压缩模式: -``` +```http Content-Encoding: gzip ``` diff --git a/files/zh-cn/web/http/headers/permissions-policy/picture-in-picture/index.md b/files/zh-cn/web/http/headers/permissions-policy/picture-in-picture/index.md index a817c3b937ecf0..f9e6f6e3b6fc07 100644 --- a/files/zh-cn/web/http/headers/permissions-policy/picture-in-picture/index.md +++ b/files/zh-cn/web/http/headers/permissions-policy/picture-in-picture/index.md @@ -9,7 +9,7 @@ HTTP 标头 {{HTTPHeader("Permissions-Policy")}} 的 `picture-in-picture` 指令 ## 语法 -``` +```http Permissions-Policy: picture-in-picture ; ``` diff --git a/files/zh-cn/web/http/headers/sec-fetch-dest/index.md b/files/zh-cn/web/http/headers/sec-fetch-dest/index.md index ce43be124a2102..69fa00ca176143 100644 --- a/files/zh-cn/web/http/headers/sec-fetch-dest/index.md +++ b/files/zh-cn/web/http/headers/sec-fetch-dest/index.md @@ -30,7 +30,7 @@ slug: Web/HTTP/Headers/Sec-Fetch-Dest ## 语法 -``` +```http Sec-Fetch-Dest: audio Sec-Fetch-Dest: audioworklet Sec-Fetch-Dest: document @@ -108,7 +108,7 @@ Sec-Fetch-Dest: xslt {{HTMLElement("img")}} 元素生成的跨域请求将具有以下的 HTTP 请求标头(请注意,目标是 `image`): -``` +```http Sec-Fetch-Dest: image Sec-Fetch-Mode: no-cors Sec-Fetch-Site: cross-site diff --git a/files/zh-cn/web/http/headers/x-frame-options/index.md b/files/zh-cn/web/http/headers/x-frame-options/index.md index 413f114fe906ec..b290cfe5b014db 100644 --- a/files/zh-cn/web/http/headers/x-frame-options/index.md +++ b/files/zh-cn/web/http/headers/x-frame-options/index.md @@ -28,7 +28,7 @@ slug: Web/HTTP/Headers/X-Frame-Options `X-Frame-Options` 有两个可能的值: -``` +```http X-Frame-Options: DENY X-Frame-Options: SAMEORIGIN ``` @@ -53,13 +53,13 @@ X-Frame-Options: SAMEORIGIN 配置 Apache 在所有页面上发送 `X-Frame-Options` 响应头,需要把下面这行添加到 'site' 的配置中: -``` +```apacheconf Header always set X-Frame-Options "SAMEORIGIN" ``` 要将 Apache 的配置 `X-Frame-Options` 设置成 `DENY`,按如下配置去设置你的站点: -``` +```apacheconf Header set X-Frame-Options "DENY" ``` @@ -67,7 +67,7 @@ Header set X-Frame-Options "DENY" 配置 Nginx 发送 `X-Frame-Options` 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中: -``` +```nginx add_header X-Frame-Options SAMEORIGIN always; ``` @@ -95,13 +95,13 @@ add_header X-Frame-Options SAMEORIGIN always; 配置 HAProxy 发送 `X-Frame-Options` 响应头,添加这些到你的前端、监听(listen),或者后端的配置里面: -``` +```plain rspadd X-Frame-Options:\ SAMEORIGIN ``` 或者,在较新的版本中: -``` +```plain http-response set-header X-Frame-Options SAMEORIGIN ``` diff --git a/files/zh-cn/web/http/resources_and_uris/index.md b/files/zh-cn/web/http/resources_and_uris/index.md deleted file mode 100644 index e38fdd3ce229a5..00000000000000 --- a/files/zh-cn/web/http/resources_and_uris/index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: Resources and URIs -slug: Web/HTTP/Resources_and_URIs ---- - -{{HTTPSidebar}} - -HTTP 允许浏览器或[用户代理](/zh-CN/docs/Glossary/User_agent)与互联网上的不同*资源*进行通信。要做到这一点,需要知道资源的*身份*与*位置*。这两部分的信息用[URI](/zh-CN/docs/Glossary/URI)来定义。 - -- [定位网络资源](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) - - : URI 与其如何访问网络资源。 -- [数据 URI](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) - - : 一类特殊的 URI:数据 URI。其将数据嵌入标识符。 -- [选择“www”URI 或“非 www”URI](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs) - - : 有关是否使用以“www”为前缀的域名的建议。这篇文章解释了相关的结果以及其如何实现。 -- [MIME 类型](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types) - - : MIME 媒体类型定义了资源是什么类型的文档。这篇文章展示了其格式与常用的 Web MIME 类型。 -- [MIME 类型的完整列表](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types) - - : Web 开发人员常用的 MIME 类型列表。 -- [分离身份与位置信息:Alt-Svc 头部](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Separating_identity_and_location_of_a_resource) - - : 即便是使用了[URI](/zh-CN/docs/Glossary/URI)来描述身份与位置信息,其仍然是不同的两个概念。有时明确的进行区分非常必要。这篇文章介绍了[Alt-Svc](/zh-CN/docs/Web/HTTP/Headers/Alt-Svc)。 diff --git a/files/zh-cn/web/http/session/index.md b/files/zh-cn/web/http/session/index.md index 3378a345a16614..9cc63ca03d6b59 100644 --- a/files/zh-cn/web/http/session/index.md +++ b/files/zh-cn/web/http/session/index.md @@ -17,7 +17,7 @@ slug: Web/HTTP/Session 在客户端——服务器协议中,连接是由客户端发起建立的。在 HTTP 中打开连接意味着在底层传输层启动连接,通常是 TCP。 -使用 TCP 时,HTTP 服务器的默认端口号是 80,另外还有 8000 和 8080 也很常用。页面的 URL 会包含域名和端口号,但当端口号为 80 时可以省略。前往[标识互联网上的内容](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web)获取更多内容。 +使用 TCP 时,HTTP 服务器的默认端口号是 80,另外还有 8000 和 8080 也很常用。页面的 URL 会包含域名和端口号,但当端口号为 80 时可以省略。参见 [URL 参考](/zh-CN/docs/Web/URI)以获取更多内容。 > [!NOTE] > 客户端——服务器模型不允许服务器在没有显式请求时发送数据给客户端。为了解决这个问题,Web 开发者们使用了许多技术:例如,使用 {{domxref("XMLHTTPRequest")}} 或 {{domxref("Fetch")}} API 周期性地请求服务器,使用 HTML [WebSocket API](/zh-CN/docs/Web/API/WebSockets_API),或其他类似协议。 @@ -154,7 +154,7 @@ X-Cache: Error from cloudfront ## 参见 -- [识别互联网上的内容](/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) +- [URL](/zh-CN/docs/Web/URI) - [HTTP 标头(header)](/zh-CN/docs/Web/HTTP/Headers) - [HTTP 请求方法](/zh-CN/docs/Web/HTTP/Methods) - [HTTP 响应状态码](/zh-CN/docs/Web/HTTP/Status) diff --git a/files/zh-cn/web/http/status/502/index.md b/files/zh-cn/web/http/status/502/index.md index c388806584c2c9..4af07b4291c945 100644 --- a/files/zh-cn/web/http/status/502/index.md +++ b/files/zh-cn/web/http/status/502/index.md @@ -11,7 +11,7 @@ slug: Web/HTTP/Status/502 ## 状态 -``` +```http 502 Bad Gateway ``` diff --git a/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.md b/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.md index 7b8cdecd2633ac..8e9e6b4f4e9529 100644 --- a/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.md +++ b/files/zh-cn/web/javascript/inheritance_and_the_prototype_chain/index.md @@ -337,7 +337,7 @@ console.log(doSomethingFromArrowFunction.prototype); 如上所示,`doSomething()` 有一个默认的 `prototype` 属性(正如控制台所示)。运行这段代码后,控制台应该显示一个类似于下面的对象。 -``` +```plain { constructor: ƒ doSomething(), [[Prototype]]: { @@ -365,7 +365,7 @@ console.log(doSomething.prototype); 其结果为: -``` +```plain { foo: "bar", constructor: ƒ doSomething(), @@ -395,7 +395,7 @@ console.log(doSomeInstancing); 这会产生类似于下面的输出: -``` +```plain { prop: "some value", [[Prototype]]: { diff --git a/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.md b/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.md index 1ebad722ee14e4..9edbd63c3ffbeb 100644 --- a/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.md +++ b/files/zh-cn/web/javascript/reference/errors/unexpected_type/index.md @@ -9,7 +9,7 @@ JavaScript 异常“_x_ is (not) _y_”在出现与期望不符的类型(通 ## 消息 -``` +```plain TypeError: Cannot read properties of undefined (reading 'x') (V8-based) TypeError: "x" is undefined (Firefox) TypeError: "undefined" is not an object (Firefox) diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/charat/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/charat/index.md index a23b4ccd626d00..575190c2f73994 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/charat/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/charat/index.md @@ -58,7 +58,7 @@ console.log(`在索引 999 处的字符为 '${anyString.charAt(999)}'`); 上面代码的输出为: -``` +```plain 在索引 0 处的字符为 'B' 在索引 0 处的字符为 'B' diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/split/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/split/index.md index 2d341f7cc2ffea..05c30aef7ec55c 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/string/split/index.md +++ b/files/zh-cn/web/javascript/reference/global_objects/string/split/index.md @@ -100,7 +100,7 @@ splitString(monthString, comma); 上述示例会产生如下输出: -``` +```plain 原始字符串为:"Oh brave new world that has such people in it." 分隔符为:" " 分隔后的数组有 10 个元素:Oh / brave / new / world / that / has / such / people / in / it. / @@ -131,7 +131,7 @@ console.log(nameList); 上例输出两行,第一行输出原始字符串,第二行输出结果数组。 -``` +```plain Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand [ "Harry Trump", "Fred Barney", "Helen Rigby", "Bill Abel", "Chris Hand", "" ] ``` diff --git a/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.md b/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.md index 37a60063ba5d85..f503b4b45f3d6b 100644 --- a/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.md +++ b/files/zh-cn/web/javascript/reference/operators/bitwise_and/index.md @@ -19,7 +19,7 @@ a & b 操作数被转换为 32 位整数,并由一系列位(0 和 1)表示。超过 32 位的数字将丢弃其最高有效位。例如,以下大于 32 位的整数将被转换为 32 位整数: -``` +```plain Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001 ``` @@ -37,7 +37,7 @@ After: 10100000000000000110000000000001 | 1 | 0 | 0 | | 1 | 1 | 1 | -``` +```plain 9 (base 10) = 00000000000000000000000000001001 (base 2) 14 (base 10) = 00000000000000000000000000001110 (base 2) -------------------------------- diff --git a/files/zh-cn/web/javascript/reference/operators/bitwise_not/index.md b/files/zh-cn/web/javascript/reference/operators/bitwise_not/index.md index fcc901cab01f5d..4ef6879c099cda 100644 --- a/files/zh-cn/web/javascript/reference/operators/bitwise_not/index.md +++ b/files/zh-cn/web/javascript/reference/operators/bitwise_not/index.md @@ -19,7 +19,7 @@ slug: Web/JavaScript/Reference/Operators/Bitwise_NOT 操作数被转换为 32 位有符号整型,并以一系列比特(0 和 1)表示。超过 32 位的数字将丢弃其最高有效位。如下例子中,超过 32 位的整数将转换为 32 位整数: -``` +```plain Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001 ``` @@ -33,7 +33,7 @@ After: 10100000000000000110000000000001 | 0 | 1 | | 1 | 0 | -``` +```plain 9 (base 10) = 00000000000000000000000000001001 (base 2) -------------------------------- ~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10) diff --git a/files/zh-cn/web/javascript/reference/operators/bitwise_or/index.md b/files/zh-cn/web/javascript/reference/operators/bitwise_or/index.md index 8c81ca42827269..c0b9cacf4381ee 100644 --- a/files/zh-cn/web/javascript/reference/operators/bitwise_or/index.md +++ b/files/zh-cn/web/javascript/reference/operators/bitwise_or/index.md @@ -19,7 +19,7 @@ a | b 操作数被转换为 32 位整数并由一系列二进制位(0 和 1)表示。超过 32 位的数字会丢弃其最高有效位。例如,以下超过 32 位的整数将被转换为 32 位整数: -``` +```plain Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001 ``` @@ -37,7 +37,7 @@ After: 10100000000000000110000000000001 | 1 | 0 | 1 | | 1 | 1 | 1 | -``` +```plain 9 (base 10) = 00000000000000000000000000001001 (base 2) 14 (base 10) = 00000000000000000000000000001110 (base 2) -------------------------------- diff --git a/files/zh-cn/web/javascript/reference/operators/bitwise_xor/index.md b/files/zh-cn/web/javascript/reference/operators/bitwise_xor/index.md index 9af023fbdaa51e..5447459472d946 100644 --- a/files/zh-cn/web/javascript/reference/operators/bitwise_xor/index.md +++ b/files/zh-cn/web/javascript/reference/operators/bitwise_xor/index.md @@ -19,7 +19,7 @@ a ^ b 操作数被转换为 32 位整数并由一系列二进制位(0 和 1)表示。超过 32 位的数字会丢弃其最高有效位。例如,以下超过 32 位的整数将被转换为 32 位整数: -``` +```plain Before: 11100110111110100000000000000110000000000001 After: 10100000000000000110000000000001 ``` @@ -37,7 +37,7 @@ After: 10100000000000000110000000000001 | 1 | 0 | 1 | | 1 | 1 | 0 | -``` +```plain 9 (base 10) = 00000000000000000000000000001001 (base 2) 14 (base 10) = 00000000000000000000000000001110 (base 2) -------------------------------- diff --git a/files/zh-cn/web/javascript/reference/operators/logical_and/index.md b/files/zh-cn/web/javascript/reference/operators/logical_and/index.md index cdedf3dfeda280..f46a0e2eaf557c 100644 --- a/files/zh-cn/web/javascript/reference/operators/logical_and/index.md +++ b/files/zh-cn/web/javascript/reference/operators/logical_and/index.md @@ -48,7 +48,7 @@ result = "foo" && 4; // 结果被赋值为 4 考虑如下伪代码。 -``` +```plain (some falsy expression) && expr ``` diff --git a/files/zh-cn/web/javascript/reference/operators/unsigned_right_shift/index.md b/files/zh-cn/web/javascript/reference/operators/unsigned_right_shift/index.md index bf3d3aadabec9d..58c5dac9288944 100644 --- a/files/zh-cn/web/javascript/reference/operators/unsigned_right_shift/index.md +++ b/files/zh-cn/web/javascript/reference/operators/unsigned_right_shift/index.md @@ -21,7 +21,7 @@ a >>> b 以十进制(以 10 为基数)数字 `9` 和 `-9` 的 32 位二进制表示为例: -``` +```plain 9 (base 10): 00000000000000000000000000001001 (base 2) -9 (base 10): 11111111111111111111111111110111 (base 2) ``` @@ -32,7 +32,7 @@ a >>> b 对于正数 `9`,零填充右移和[符号传播右移](/zh-CN/docs/Web/JavaScript/Reference/Operators/Right_shift)产生相同的结果:`9 >>> 2` 产生 `2`,与 `9 >> 2` 相同: -``` +```plain 9 (base 10): 00000000000000000000000000001001 (base 2) -------------------------------- 9 >> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10) @@ -43,7 +43,7 @@ a >>> b 但是,请注意 `-9` 会发生什么情况:`-9 >> 2`([符号传播右移](/zh-CN/docs/Web/JavaScript/Reference/Operators/Right_shift))产生 `-3`,但 `-9 >>> 2`(零填充右移)产生 1073741821: -``` +```plain -9 (base 10): 11111111111111111111111111110111 (base 2) -------------------------------- -9 >> 2 (base 10): 11111111111111111111111111111101 (base 2) = -3 (base 10) diff --git a/files/zh-cn/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md b/files/zh-cn/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md index 1f9326bc27caab..436940d9a903d9 100644 --- a/files/zh-cn/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md +++ b/files/zh-cn/web/media/audio_and_video_delivery/adding_captions_and_subtitles_to_html5_video/index.md @@ -284,7 +284,7 @@ WebVTT 的一个不太为人所知和支持的功能是通过 [CSS 扩展](https 如果 WebVTT 文件使用 [voice span](https://w3c.github.io/webvtt/#dfn-webvtt-cue-voice-span),它允许将提示定义为具有特定的“声音”: -``` +```plain 0 00:00:00.000 --> 00:00:12.000 [Test] diff --git a/files/zh-cn/web/security/subresource_integrity/index.md b/files/zh-cn/web/security/subresource_integrity/index.md index a790c57a626924..0de8d02dc1d88f 100644 --- a/files/zh-cn/web/security/subresource_integrity/index.md +++ b/files/zh-cn/web/security/subresource_integrity/index.md @@ -26,7 +26,7 @@ slug: Web/Security/Subresource_Integrity 使用 base64 编码 sha384 算法计算出摘要后的 `integrity` 值的示例: -``` +```plain sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC ``` diff --git a/files/zh-cn/web/svg/attribute/id/index.md b/files/zh-cn/web/svg/attribute/id/index.md index a7e344a5d29238..c4c66909af61bb 100644 --- a/files/zh-cn/web/svg/attribute/id/index.md +++ b/files/zh-cn/web/svg/attribute/id/index.md @@ -1,13 +1,15 @@ --- title: id slug: Web/SVG/Attribute/id +l10n: + sourceCommit: 5c000c8621145c6915f3d545b505c216317bc64a --- {{SVGRef}} -**`id`** 属性给予元素一个唯一名称。 +**`id`** 属性为元素分配一个唯一的名称。 -所有元素均可使用该属性。 +此属性可用于任何 SVG 元素。 ## 示例 @@ -15,9 +17,9 @@ slug: Web/SVG/Attribute/id - + + + + + + + + + + + + + + + + + ``` -### 示例输出 - -{{ EmbedLiveSample('示例','220','220') }} +{{EmbedLiveSample("示例", '100%', 150)}} + +## 使用说明 + + + + + 值 + none | <dasharray> + + + 默认值 + none + + + 动画性 + 是 + + + -## 元素 +- \ -下列元素可以使用 `stroke-dasharray` 属性: + - : 以逗号或空格分隔的 [``](/zh-CN/docs/Web/SVG/Content_type#长度) 和 [``](/zh-CN/docs/Web/SVG/Content_type#百分数) 列表,用于定义交替的虚线段和间隙的长度。 -- [形状元素](/zh-CN/SVG/Element#Shape_elements) » -- [文本内容元素](/zh-CN/SVG/Element#Text_content_elements) » + 如果提供了奇数个值,则重复该列表以产生偶数个值,因此 `5,3,2` 等价于 `5,3,2,5,3,2`。 ## 规范 {{Specifications}} + +## 浏览器兼容性 + +{{Compat}} diff --git a/files/zh-cn/web/svg/attribute/stroke-width/index.md b/files/zh-cn/web/svg/attribute/stroke-width/index.md index 81999bc29fa8f8..65131ccac73cea 100644 --- a/files/zh-cn/web/svg/attribute/stroke-width/index.md +++ b/files/zh-cn/web/svg/attribute/stroke-width/index.md @@ -5,26 +5,84 @@ slug: Web/SVG/Attribute/stroke-width {{SVGRef}} -`stroke-width` 属性指定了当前对象的轮廓的宽度。它的默认值是 **1**。如果使用了一个\,这个值代表当前视口的百分比。如果使用了 **0** 值,则将不绘制轮廓。 +**`stroke-width`** 表现属性定义了应用于图形的外轮廓的宽度。 -作为一个外观属性,它可以直接用作 CSS 样式表内部的属性。 +你可以将此属性与以下 SVG 元素一起使用: -## 用法 - -| 类别 | 外观属性 | -| ------ | ------------------------------------------------------------------------------------------------------------- | -| 值 | [\](/zh-CN/SVG/Content_type#Length) \| [\](/zh-CN/SVG/Content_type#Percentage) \| inherit | -| 可变性 | Yes | +- {{SVGElement('circle')}} +- {{SVGElement('ellipse')}} +- {{SVGElement('line')}} +- {{SVGElement('path')}} +- {{SVGElement('polygon')}} +- {{SVGElement('polyline')}} +- {{SVGElement('rect')}} +- {{SVGElement('text')}} +- {{SVGElement('textPath')}} +- {{SVGElement('tref')}} +- {{SVGElement('tspan')}} ## 示例 -## 元素 +```css hidden +html, +body, +svg { + height: 100%; +} +``` + +```html + + + + + + + + + + +``` -下列元素可以使用`stroke-width`属性: +{{EmbedLiveSample("示例", '100%', 150)}} -- [形状元素](/zh-CN/SVG/Element#Shape) » -- [文本内容元素](/zh-CN/SVG/Element#TextContent) » +## 用法 + + + + + 值 + + <length> | + <percentage> + + + + 默认值 + 1px + + + 动画性 + 是 + + + + +> [!NOTE] +> 百分数值始终以标准化 {{SVGAttr('viewBox')}} 的对角线长度的百分比计算。 ## 规范 {{Specifications}} + +## 浏览器兼容性 + +{{Compat}} diff --git a/files/zh-cn/web/svg/attribute/stroke/index.md b/files/zh-cn/web/svg/attribute/stroke/index.md index b016fd9b5219f6..afd48666808077 100644 --- a/files/zh-cn/web/svg/attribute/stroke/index.md +++ b/files/zh-cn/web/svg/attribute/stroke/index.md @@ -1,46 +1,128 @@ --- title: stroke slug: Web/SVG/Attribute/stroke +l10n: + sourceCommit: 47996becf4d78c721f29a3004ac613bd51c11ab8 --- {{SVGRef}} -`stroke` 属性定义了给定图形元素的外轮廓的颜色。它的默认值是 **`none`**。 +**`stroke`** 是一个表现属性,它定义了图形的外轮廓的颜色(_或者是任何 SVG 绘画方式,如渐变或图案_)。 -## 用法 +> [!NOTE] +> 作为一个表现属性,`stroke` 可以用作 CSS 属性。参见 {{cssxref('stroke')}} 以了解更多信息。 + +你可以将此属性与以下 SVG 元素一起使用: -| 类别 | 外观属性 | -| ------ | ----------------------------------------- | -| 值 | [\](/zh-CN/SVG/Content_type#Paint) | -| 可变性 | 是 | +- {{SVGElement('circle')}} +- {{SVGElement('ellipse')}} +- {{SVGElement('line')}} +- {{SVGElement('path')}} +- {{SVGElement('polygon')}} +- {{SVGElement('polyline')}} +- {{SVGElement('rect')}} +- {{SVGElement('text')}} +- {{SVGElement('textPath')}} +- {{SVGElement('tref')}} +- {{SVGElement('tspan')}} ## 示例 -## SVG 描边的线 +### 基础颜色和渐变色描边 -### 示例 1:用 stroke 属性画一条绿色的直线 +```css hidden +html, +body, +svg { + height: 100%; +} +``` ```html - - + + + + + + + + + + + + + ``` -### 示例 2:用 Stroke 属性画一个拥有蓝色边框的黑色的圆形 +输出如下: -```html - - +{{EmbedLiveSample("基础颜色和渐变色描边", '100%', 200)}} + +### `context-stroke` 示例 + +在这个示例中,我们使用 {{SVGElement('path')}} 元素定义了三个形状的图形,每个图形都设置了不同的 `stroke` 和 [`fill`](/zh-CN/docs/Web/SVG/Attribute/fill) 颜色。我们还通过 {{SVGElement('marker')}} 元素将 {{SVGElement('circle')}} 元素定义为标记。每个图形都通过 [`marker`](/zh-CN/docs/Web/CSS/marker) CSS 属性应用了标记。 + +{{SVGElement('circle')}} 元素上设置了 `stroke="context-stroke"` 和 `fill="context-fill"`。因为它被设置为图形的上下文标记,所以这些属性会导致它在各种情况下都会继承设置在 {{SVGElement('path')}} 元素上的 `fill` 和 `stroke`。 + +```html-nolint + + + + + + + + ``` -## 元素 +输出如下: -下列元素可以使用`stroke`属性: +{{EmbedLiveSample("`context-stroke` 示例", '100%', 220)}} -- [形状元素](/zh-CN/SVG/Element#Shape) » -- [文本内容元素](/zh-CN/SVG/Element#TextContent) » +> [!NOTE] +> 当元素被 {{SVGElement('use')}} 元素引用时,元素还可以使用 `context-stroke` 和 `context-fill` 来继承 `stroke` 和 `fill` 的值。 + +## 用法 + + + + + 值 + + <paint> + + + + 默认值 + none + + + 动画性 + 是 + + + ## 规范 {{Specifications}} + +## 浏览器兼容性 + +{{Compat}} diff --git a/files/zh-cn/web/svg/content_type/index.md b/files/zh-cn/web/svg/content_type/index.md index f9f97c2c655aa6..6ac91970cd68f6 100644 --- a/files/zh-cn/web/svg/content_type/index.md +++ b/files/zh-cn/web/svg/content_type/index.md @@ -37,7 +37,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它 - : 时钟值的句法与 [SMIL Animation](https://www.w3.org/TR/2001/REC-smil-animation-20010904/) 规范中写的句法相同。在这里重放一下时钟值的语法: - ``` + ```plain Clock-val ::= Full-clock-val | Partial-clock-val | Timecount-val Full-clock-val ::= Hours ":" Minutes ":" Seconds ("." Fraction)? Partial-clock-val ::= Minutes ":" Seconds ("." Fraction)? @@ -149,13 +149,13 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它 - : 一个国际化资源标识符。在因特网上,资源是用 _IRI_(一个国际化资源标识符)标识的。举个例子,一个 SVG 文档调用了位于 `http://example.com` 上的 `someDrawing.svg`,可以使用下面的 _IRI_: - ``` + ```plain http://example.com/someDrawing.svg ``` 一个 _IRI_ 中包含一个 _IRI_ 片段标识符,就可以定位一个 XML 文档内部的特定的元素。一个包含有 _IRI_ 片段标识符的 _IRI_,由一个可选的基础 _IRI_ 后面跟着一个“#”号,再跟着一个 _IRI_ 片段标识符组成。举个例子,下面的 IRI 可以用来指定文件 someDrawing.svg 中的 ID 为“Lamppost”的元素: - ``` + ```plain http://example.com/someDrawing.svg#Lamppost ``` @@ -186,7 +186,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它 - : 一个长度是一个可度量的距离,给定一个数字以及一个单位。长度可以用两种方法指定。如果在样式表中使用它,可以如下定义\: - ``` + ```plain length ::= number (~"em" | ~"ex" | ~"px" | ~"in" | ~"cm" | ~"mm" | ~"pt" | ~"pc")? ``` @@ -196,7 +196,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它 如果是在 SVG 属性中使用长度,\需定义如下: - ``` + ```plain length ::= number ("em" | "ex" | "px" | "in" | "cm" | "mm" | "pt" | "pc" | "%")? ``` diff --git a/files/zh-cn/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md b/files/zh-cn/web/uri/authority/choosing_between_www_and_non-www_urls/index.md similarity index 97% rename from files/zh-cn/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md rename to files/zh-cn/web/uri/authority/choosing_between_www_and_non-www_urls/index.md index fbe069fe6ebd3e..399d463b9e7d14 100644 --- a/files/zh-cn/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md +++ b/files/zh-cn/web/uri/authority/choosing_between_www_and_non-www_urls/index.md @@ -1,9 +1,9 @@ --- title: 选择 www 或非 www URL -slug: Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs +slug: Web/URI/Authority/Choosing_between_www_and_non-www_URLs --- -{{HTTPSidebar}} +{{QuickLinksWithSubpages("/zh-CN/docs/Web/URI")}} 网站所有者经常会问的一个问题是选择非 www 的还是 www 的 URL。本文提供了选择建议。 diff --git a/files/zh-cn/web/text_fragments/index.md b/files/zh-cn/web/uri/fragment/text_fragments/index.md similarity index 99% rename from files/zh-cn/web/text_fragments/index.md rename to files/zh-cn/web/uri/fragment/text_fragments/index.md index 9514774be06358..023ebc51ec483f 100644 --- a/files/zh-cn/web/text_fragments/index.md +++ b/files/zh-cn/web/uri/fragment/text_fragments/index.md @@ -1,8 +1,10 @@ --- title: 文本片段 -slug: Web/Text_fragments +slug: Web/URI/Fragment/Text_fragments --- +{{QuickLinksWithSubpages("/zh-CN/docs/Web/URI")}} + **文本片段**(Text Fragment)允许你直接链接到 web 文档中的特定文本部分,而不需要作者使用 URL 片段中的特定语法对其进行注释。支持的浏览器可以自由选择如何引起对链接文本的注意,例如,用颜色突出显示和/或滚动到页面上的内容。文本片段允许 web 内容作者与他们不控制的其他内容进行深度链接,而不需要依赖 ID 的存在来实现,在这一点上它很有用途。在此基础上,它可以用来生成更有效的内容共享链接,让用户相互传递。 ## 概念和用法 @@ -30,7 +32,7 @@ slug: Web/Text_fragments 与文档片段行为类似,文本片段被附加到 URL 的哈希符号(`#`)后。但语法有轻微不同: -``` +```url https://example.com#:~:text=[prefix-,]textStart[,textEnd][,-suffix] ``` diff --git a/files/zh-cn/web/http/basics_of_http/data_urls/index.md b/files/zh-cn/web/uri/schemes/data/index.md similarity index 98% rename from files/zh-cn/web/http/basics_of_http/data_urls/index.md rename to files/zh-cn/web/uri/schemes/data/index.md index 85d56bc32a4e53..e87f911488ee23 100644 --- a/files/zh-cn/web/http/basics_of_http/data_urls/index.md +++ b/files/zh-cn/web/uri/schemes/data/index.md @@ -1,9 +1,9 @@ --- title: Data URL -slug: Web/HTTP/Basics_of_HTTP/Data_URLs +slug: Web/URI/Schemes/data --- -{{HTTPSidebar}} +{{QuickLinksWithSubpages("/zh-CN/docs/Web/URI")}} **Data URL**,即前缀为 `data:` 协议的 URL,其允许内容创建者向文档中嵌入小文件。它们之前被称作“data URI”,直到这个名字被 WHATWG 弃用。 diff --git a/files/zh-cn/web/webdriver/index.md b/files/zh-cn/web/webdriver/index.md index 65c3a459e148f4..25024500c3a42b 100644 --- a/files/zh-cn/web/webdriver/index.md +++ b/files/zh-cn/web/webdriver/index.md @@ -40,7 +40,7 @@ with webdriver.Firefox() as driver: 它可能会输出: -``` +```plain #1 Cheese - Wikipedia (https://en.wikipedia.org/wiki/Cheese) ``` diff --git a/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.md b/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.md index 8600a7a570a06a..f37c5653e01751 100644 --- a/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.md +++ b/files/zh-cn/web/xpath/introduction_to_using_xpath_in_javascript/index.md @@ -332,7 +332,7 @@ Components.classes["@mozilla.org/dom/xpath-evaluator;1"].createInstance( 这只是一个例子。此函数将需要从 `xpathExpression` 获取命名空间前缀,并返回与该前缀对应的 URI。例如,表达式: -``` +```plain '//xhtml:td/mathml:math' ``` diff --git a/files/zh-tw/_redirects.txt b/files/zh-tw/_redirects.txt index 38c6399083b12a..846ee0c55e2be0 100644 --- a/files/zh-tw/_redirects.txt +++ b/files/zh-tw/_redirects.txt @@ -490,6 +490,8 @@ /zh-TW/docs/Web/HTML/Introduction /zh-CN/docs/learn/HTML/Introduction_to_HTML /zh-TW/docs/Web/HTML/區塊級元素 /zh-TW/docs/Glossary/Block-level_content /zh-TW/docs/Web/HTTP/Access_control_CORS /zh-TW/docs/Web/HTTP/CORS +/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs /zh-TW/docs/Web/URI/Authority/Choosing_between_www_and_non-www_URLs +/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Data_URLs /zh-TW/docs/Web/URI/Schemes/data /zh-TW/docs/Web/HTTP/Link_prefetching_FAQ /zh-TW/docs/Glossary/Prefetch /zh-TW/docs/Web/HTTP/Response_codes /zh-TW/docs/Web/HTTP/Status /zh-TW/docs/Web/HTTP/Server-Side_Access_Control /zh-TW/docs/Web/HTTP/CORS diff --git a/files/zh-tw/_wikihistory.json b/files/zh-tw/_wikihistory.json index 94e803b84a2374..8f4e17cbee4192 100644 --- a/files/zh-tw/_wikihistory.json +++ b/files/zh-tw/_wikihistory.json @@ -2868,10 +2868,6 @@ "yyss" ] }, - "Web/HTTP/Basics_of_HTTP/MIME_types": { - "modified": "2020-06-08T05:57:19.890Z", - "contributors": ["hikariTW", "willynpi"] - }, "Web/HTTP/Browser_detection_using_the_user_agent": { "modified": "2020-09-21T11:14:16.789Z", "contributors": ["iigmir", "jwhitlock"] diff --git a/files/zh-tw/web/html/element/a/index.md b/files/zh-tw/web/html/element/a/index.md index 47a7eebe0b593d..f048db3a258df5 100644 --- a/files/zh-tw/web/html/element/a/index.md +++ b/files/zh-tw/web/html/element/a/index.md @@ -23,9 +23,9 @@ slug: Web/HTML/Element/a - {{HTTPHeader("Content-Disposition")}} HTTP 標頭 - URL [路徑](/zh-TW/docs/Web/API/URL/pathname)中的最終段落 - - {{HTTPHeader("Content-Type")}} 標頭中的{{Glossary("MIME_type", "媒體類型")}},以及 [`data:` URL](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) 的開頭,或是 [`blob:` URL](/zh-TW/docs/Web/API/URL/createObjectURL_static) 的 {{domxref("Blob.type")}}。 + - {{HTTPHeader("Content-Type")}} 標頭中的{{Glossary("MIME_type", "媒體類型")}},以及 [`data:` URL](/zh-TW/docs/Web/URI/Schemes/data) 的開頭,或是 [`blob:` URL](/zh-TW/docs/Web/API/URL/createObjectURL_static) 的 {{domxref("Blob.type")}}。 - - `filename`:定義值可建議作為文件名。 `/` 和 `\` 字符將轉換為底線(`_`)。檔案系統可能禁止文件名中的其他字符,因此如果需要,瀏覽器將調整建議的名稱。 + - `filename`:定義值可建議作為文件名。`/` 和 `\` 字符將轉換為底線(`_`)。檔案系統可能禁止文件名中的其他字符,因此如果需要,瀏覽器將調整建議的名稱。 > [!NOTE] > @@ -41,7 +41,7 @@ slug: Web/HTML/Element/a - : 超連結指向的 URL。連結不限於基於 HTTP 的 URL——它們可以使用瀏覽器支持的任何 URL 方案: - 具有文件片段的頁面部分 - - 具有[文字片段](/zh-TW/docs/Web/Text_fragments)的特定文本部分 + - 具有[文字片段](/zh-TW/docs/Web/URI/Fragment/Text_fragments)的特定文本部分 - 具有媒體片段的媒體文件部分 - 使用 `tel:` URL 的電話號碼 - 使用 `mailto:` URL 的電子郵件地址 @@ -519,4 +519,4 @@ document - {{CSSxRef(":link")}} 是一個 CSS 虛擬類,將匹配 `` 元素,其中 `href` 屬性中的 URL 尚未被用戶訪問過。 - {{CSSxRef(":visited")}} 是一個 CSS 虛擬類,將匹配 `` 元素,其中 `href` 屬性中的 URL 曾經被用戶訪問過。 - {{CSSxRef(":any-link")}} 是一個 CSS 虛擬類,將匹配具有 `href` 屬性的 `` 元素。 -- [文字片段](/zh-TW/docs/Web/Text_fragments)是添加到 URL 中的用戶代理指令,允許內容作者鏈接到頁面上的特定文本,而不需要 ID。 +- [文字片段](/zh-TW/docs/Web/URI/Fragment/Text_fragments)是添加到 URL 中的用戶代理指令,允許內容作者鏈接到頁面上的特定文本,而不需要 ID。 diff --git a/files/zh-tw/web/html/element/base/index.md b/files/zh-tw/web/html/element/base/index.md index 782596f218c176..83a17121874953 100644 --- a/files/zh-tw/web/html/element/base/index.md +++ b/files/zh-tw/web/html/element/base/index.md @@ -18,7 +18,7 @@ slug: Web/HTML/Element/base - `href` - : 用於整個文件中相對 URL 的基礎 URL。 允許絕對和相對 URL。 - 不允許 [`data:`](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) 和 `javascript:` URL。 + 不允許 [`data:`](/zh-TW/docs/Web/URI/Schemes/data) 和 `javascript:` URL。 - `target` - : 顯示來自 {{HTMLElement("a")}}、{{HTMLElement("area")}} 或 {{HTMLElement("form")}} 元素的導航結果的**關鍵字**或**作者定義的名稱**的默認{{Glossary("browsing context", "瀏覽上下文")}}。以下關鍵字具有特殊含義: diff --git a/files/zh-tw/web/http/basics_of_http/identifying_resources_on_the_web/index.md b/files/zh-tw/web/http/basics_of_http/identifying_resources_on_the_web/index.md deleted file mode 100644 index eec37467fa44f0..00000000000000 --- a/files/zh-tw/web/http/basics_of_http/identifying_resources_on_the_web/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: 識別 Web 上的資源 -slug: Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web -l10n: - sourceCommit: 592f6ec42e54981b6573b58ec0343c9aa8cbbda8 ---- - -{{HTTPSidebar}} - -HTTP 請求的目標被稱為「資源」,其性質並未進一步定義;它可以是一個文件、一張照片或其他任何東西。每個資源都由統一資源標識符({{Glossary("URI")}})識別,該 URI 在整個 HTTP 中用於識別資源。 - -## URL 和 URN - -### URL - -最常見的 URI 形式是統一資源定位符(URL),也稱為*網址*。 - -```url -https://developer.mozilla.org -https://developer.mozilla.org/zh-TW/docs/Learn/ -https://developer.mozilla.org/zh-TW/search?q=URL -``` - -可以將任何一個 URL 輸入到瀏覽器的地址欄中,以告訴它加載相關的網頁(資源)。 - -URL 由不同的部分組成,一些是必需的,而其他是可選的。一個更複雜的例子可能如下所示: - -```url -http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument -``` - -### URN - -統一資源名稱(URN)是一個在特定命名空間中以名稱識別資源的 URI。 - -```url -urn:isbn:9780141036144 -urn:ietf:rfc:7230 -``` - -這兩個 URN 分別對應到: - -- 《0984》一書,作者是喬治·奧威爾(George Orwell)。 -- IETF 規範 7230,標題為「超文本傳輸協定(HTTP/1.1):消息語法和路由」。 - -## 統一資源識別符的語法 - -### 方案或協定 - -- ![協定](mdn-url-protocol@x2.png) - - : `http://` 是個協定(protocol),它指示瀏覽器應該使用哪種協定。通常情況下,這是 HTTP 協定或其安全版本 HTTPS。網頁需要使用這兩者之一,但瀏覽器也知道如何處理其他協定,比如 `mailto:`(用於打開郵件用戶端)或 `ftp:`(用於處理文件傳輸),所以如果你看到這些協定,也不要感到驚訝。一些常見的方案(scheme)包括: - -| 方案 | 描述 | -| ----------- | ------------------------------------------------------------ | -| data | [Data URL](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) | -| file | 特定主機的文件名 | -| ftp | {{Glossary("FTP", "文件傳輸協定")}} | -| http/https | [超文字傳輸協定(安全)](/zh-TW/docs/Glossary/HTTP) | -| javascript | URL 中嵌入的 JavaScript 程式碼 | -| mailto | 電子郵件地址 | -| ssh | 安全外殼 | -| tel | 電話 | -| urn | 統一資源名稱 | -| view-source | 資源的源程式碼 | -| ws/wss | [WebSocket 連接(安全)](/zh-TW/docs/Web/API/WebSockets_API) | - -### 權威 - -- ![域名](mdn-url-domain@x2.png) - - : `www.example.com` 是域名或管理命名空間的權威,它指示正在請求的 Web 伺服器。或者,也可以直接使用 IP 位址,但由於不太方便,因此在 Web 上很少使用。 - -### 通訊埠 - -- ![通訊埠](mdn-url-port@x2.png) - - : `:80` 是在這個範例中的通訊埠編號。它表示用於訪問 Web 伺服器上的資源的技術「閘道器」。通常,如果 Web 伺服器使用 HTTP 協定的標準通訊埠(HTTP 的通訊埠為 80,HTTPS 的通訊埠為 443)來提供對其資源的訪問權,則可以省略它。否則,它是必需的。 - -### 路徑 - -- ![文件路徑](mdn-url-path@x2.png) - - : `/path/to/myfile.html` 是 Web 伺服器上資源的路徑。在 Web 早期,這樣的路徑代表了 Web 伺服器上的實際文件位置。如今,它主要是由 Web 伺服器抽象的處理,並且沒有實際的物理存在。 - -### 查詢 - -- ![參數](mdn-url-parameters@x2.png) - - : `?key1=value1&key2=value2` 是提供給 Web 伺服器的額外參數。這些參數是一個由 `&` 符號分隔的鍵/值對列表。Web 伺服器可以使用這些參數在將資源返回給用戶之前執行額外的操作。每個 Web 伺服器都有自己的參數處理規則,了解特定 Web 伺服器如何處理參數的唯一可靠方法是請教 Web 伺服器的所有者。 - -### 片段 - -- ![錨點](mdn-url-anchor@x2.png) - - : `#SomewhereInTheDocument` 是對資源本身的另一部分的錨點。錨點代表資源內的一種「書籤」,它告訴瀏覽器顯示位於該「書籤」位置的內容。例如,在 HTML 文件中,瀏覽器將滾動到定義錨點的位置;在視訊或音訊文件中,瀏覽器將嘗試跳轉到錨點代表的時間。值得注意的是,# 後面的部分,也稱為片段標識符,不會隨請求一起發送到伺服器。 - -## 使用筆記 - -在 {{Glossary("HTML")}} 內容中使用 URL 時,通常只應該使用其中一些 URL 方案。當引用子資源(即作為更大文件一部分加載的檔案)時,應僅使用 HTTP 和 HTTPS 方案。出於安全原因,越來越多的瀏覽器已經停用了使用 FTP 來加載子資源的支援。 - -FTP 在頂層(例如直接輸入到瀏覽器的 URL 欄中,或作為連結的目標)仍然可以接受,但一些瀏覽器可能將 FTP 內容的加載委派給另一個應用程序。 - -## 範例 - -```url -https://developer.mozilla.org/zh-TW/docs/Learn -tel:+1-816-555-1212 -git@github.com:mdn/browser-compat-data.git -ftp://example.org/resource.txt -urn:isbn:9780141036144 -mailto:help@supercyberhelpdesk.info -``` - -## 規範 - -{{Specifications}} - -## 參見 - -- [什麼是 URL?](/zh-TW/docs/Learn/Common_questions/Web_mechanics/What_is_a_URL) -- [IANA URI 方案列表](https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml) diff --git a/files/zh-tw/web/http/resources_and_uris/index.md b/files/zh-tw/web/http/resources_and_uris/index.md deleted file mode 100644 index ce673a6242df10..00000000000000 --- a/files/zh-tw/web/http/resources_and_uris/index.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: 資源和 URI -slug: Web/HTTP/Resources_and_URIs -l10n: - sourceCommit: 0880a90f3811475d78bc4b2c344eb4146f25f66c ---- - -{{HTTPSidebar}} - -HTTP 允許瀏覽器或其他{{Glossary("user agent", "使用者代理")}}與互聯網上的不同的*資源*進行通信:為此,瀏覽器需要資源的*身份*和*位置*。這兩個訊息由 {{glossary("URI")}} 描述。 - -- [識別網路上的資源](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) - - : URI 以及如何訪問網路上的資源。 -- [資料 URL](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Data_URLs) - - : 一種特定類型的 URI,資料 URL 將資源本身嵌入識別符號中。 -- [在 www 和非 www URL 之間做出選擇](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs) - - : 關於使用以 www 為前綴的域名還是不使用的建議,本文解釋了選擇的後果以及如何進行選擇。 -- [MIME 類型](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/MIME_types) - - : MIME 媒體類型定義了特定資源是什麼類型的文件。本文介紹了在網路上使用的語法和最常用的 MIME 類型。 -- [常見的 MIME 類型](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) - - : 用於網頁開發人員的常見 MIME 類型列表。 diff --git a/files/zh-tw/web/http/session/index.md b/files/zh-tw/web/http/session/index.md index 686a174d5c04e6..77803ef69cb5bf 100644 --- a/files/zh-tw/web/http/session/index.md +++ b/files/zh-tw/web/http/session/index.md @@ -19,7 +19,7 @@ l10n: 在用戶端—伺服器協定中,是用戶端建立連接。在 HTTP 中打開連接意味著在底層傳輸層啟動一個連接,這通常是 TCP。 -對於 TCP,用於計算機上的 HTTP 伺服器的默認端口是 80。也可以使用其他端口,例如 8000 或 8080。要提取的頁面的 URL 包含域名和連接埠,如果連接埠是 80 則後者可以省略。有關更多詳細訊息,請參見[識別 Web 上的資源](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web)。 +對於 TCP,用於計算機上的 HTTP 伺服器的默認端口是 80。也可以使用其他端口,例如 8000 或 8080。要提取的頁面的 URL 包含域名和連接埠,如果連接埠是 80 則後者可以省略。有關更多詳細訊息,請參見 [URL 參考](/zh-TW/docs/Web/URI)。 > [!NOTE] > 用戶端—伺服器模型不允許伺服器在沒有明確請求的情況下向用戶端發送數據。但是,各種 Web API 使這種用例成為可能,包括 [Push API](/zh-TW/docs/Web/API/Push_API)、[伺服器發送事件](/zh-TW/docs/Web/API/Server-sent_events)和 [WebSockets API](/zh-TW/docs/Web/API/WebSockets_API)。 @@ -157,7 +157,7 @@ X-Cache: Error from cloudfront ## 參見 -- [在 Web 上識別資源](/zh-TW/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web) +- [URL](/zh-TW/docs/Web/URI) - [HTTP 標頭](/zh-TW/docs/Web/HTTP/Headers) - [HTTP 請求方法](/zh-TW/docs/Web/HTTP/Methods) - [HTTP 回應狀態碼](/zh-TW/docs/Web/HTTP/Status) diff --git a/files/zh-tw/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md b/files/zh-tw/web/uri/authority/choosing_between_www_and_non-www_urls/index.md similarity index 96% rename from files/zh-tw/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md rename to files/zh-tw/web/uri/authority/choosing_between_www_and_non-www_urls/index.md index a379032f4f0776..a85f9c92355b21 100644 --- a/files/zh-tw/web/http/basics_of_http/choosing_between_www_and_non-www_urls/index.md +++ b/files/zh-tw/web/uri/authority/choosing_between_www_and_non-www_urls/index.md @@ -1,11 +1,11 @@ --- title: 選擇 www 和非 www 網址 -slug: Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs +slug: Web/URI/Authority/Choosing_between_www_and_non-www_URLs l10n: - sourceCommit: 3c29ffa78c551ea6a61bbb795a5f97a66c6868c0 + sourceCommit: 6b730e3cfdf0f51940b44efa71bd59c84ce76e71 --- -{{HTTPSidebar}} +{{QuickLinksWithSubpages("/zh-TW/docs/Web/URI")}} 網站擁有者經常面臨的一個問題是選擇「www」(`www.example.com`)還是「非 www」(`example.com`)網址。本頁面將提供一些建議,幫助你做出最佳選擇。 diff --git a/files/zh-tw/web/http/basics_of_http/data_urls/index.md b/files/zh-tw/web/uri/schemes/data/index.md similarity index 98% rename from files/zh-tw/web/http/basics_of_http/data_urls/index.md rename to files/zh-tw/web/uri/schemes/data/index.md index 7f0e533c7aaf33..089bf24fdbdfd8 100644 --- a/files/zh-tw/web/http/basics_of_http/data_urls/index.md +++ b/files/zh-tw/web/uri/schemes/data/index.md @@ -1,11 +1,11 @@ --- title: Data URL -slug: Web/HTTP/Basics_of_HTTP/Data_URLs +slug: Web/URI/Schemes/data l10n: sourceCommit: 997a0ec66e1514b7269076195b2419db334e876e --- -{{HTTPSidebar}} +{{QuickLinksWithSubpages("/zh-TW/docs/Web/URI")}} **Data URL** 是以 `data:` 開頭的 URL,允許內容創作者將小型檔案嵌入文件中。以前它們被稱為「data URI」,直到 WHATWG 將這個名稱廢除。 diff --git a/package.json b/package.json index 64216a469b91c8..84aa08f4ec4e9e 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "dependencies": { "autocorrect-node": "2.11.1", "cld": "^2.9.1", - "fdir": "^6.2.0", + "fdir": "^6.3.0", "front-matter": "^4.0.2", "husky": "9.1.5", "lint-staged": "15.2.9", @@ -37,7 +37,7 @@ "markdownlint-cli2": "0.13.0", "markdownlint-rule-search-replace": "1.2.0", "mdast-util-from-markdown": "^2.0.1", - "ora": "^8.0.1", + "ora": "^8.1.0", "prettier": "3.3.3", "unist-util-visit": "^5.0.0", "yargs": "^17.7.2" diff --git a/yarn.lock b/yarn.lock index 1dd0a18799085d..b5c10fb639f235 100644 --- a/yarn.lock +++ b/yarn.lock @@ -175,13 +175,6 @@ cld@^2.9.1: node-addon-api "*" underscore "^1.12.1" -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== - dependencies: - restore-cursor "^4.0.0" - cli-cursor@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38" @@ -341,10 +334,10 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fdir@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.2.0.tgz#9120f438d566ef3e808ca37864d9dd18e1a4f9b5" - integrity sha512-9XaWcDl0riOX5j2kYfy0kKdg7skw3IY6kA4LFT8Tk2yF9UdrADUy8D6AJuBLtf7ISm/MksumwAHE3WVbMRyCLw== +fdir@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.3.0.tgz#fcca5a23ea20e767b15e081ee13b3e6488ee0bb0" + integrity sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ== fill-range@^7.0.1: version "7.0.1" @@ -895,11 +888,6 @@ micromatch@^4.0.4, micromatch@~4.0.7: braces "^3.0.3" picomatch "^2.3.1" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - mimic-fn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" @@ -941,13 +929,6 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - onetime@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" @@ -962,19 +943,19 @@ onetime@^7.0.0: dependencies: mimic-function "^5.0.0" -ora@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-8.0.1.tgz#6dcb9250a629642cbe0d2df3a6331ad6f7a2af3e" - integrity sha512-ANIvzobt1rls2BDny5fWZ3ZVKyD6nscLvfFRpQgfWsythlcsVUC9kL0zq6j2Z5z9wwp1kd7wpsD/T9qNPVLCaQ== +ora@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-8.1.0.tgz#c3db2f9f83a2bec9e8ab71fe3b9ae234d65ca3a8" + integrity sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ== dependencies: chalk "^5.3.0" - cli-cursor "^4.0.0" + cli-cursor "^5.0.0" cli-spinners "^2.9.2" is-interactive "^2.0.0" is-unicode-supported "^2.0.0" log-symbols "^6.0.0" - stdin-discarder "^0.2.1" - string-width "^7.0.0" + stdin-discarder "^0.2.2" + string-width "^7.2.0" strip-ansi "^7.1.0" path-is-absolute@^1.0.0: @@ -1027,14 +1008,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - restore-cursor@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7" @@ -1072,11 +1045,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" @@ -1108,10 +1076,10 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -stdin-discarder@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.2.1.tgz#e69966d2ac1e803f6378584aa7f30a74e01d70ce" - integrity sha512-wRXvkxiYhOAduH+LFL/Qpim5zIWKYH1yEGvU0W8PgmabrZZ29iC1LKS8i443SYct12oZmQH7nyEonKiV8RTIsg== +stdin-discarder@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz#390037f44c4ae1a1ae535c5fe38dc3aba8d997be" + integrity sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ== string-argv@~0.3.2: version "0.3.2" @@ -1127,10 +1095,10 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.0.0.tgz#14aa1b7aaa126d5b64fa79d3c894da8a9650ba06" - integrity sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw== +string-width@^7.0.0, string-width@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== dependencies: emoji-regex "^10.3.0" get-east-asian-width "^1.0.0"
...
none
<dasharray>
1px