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` や `