From: Luis Gil Date: Tue, 31 Jul 2018 16:47:55 +0000 (+0000) Subject: Updated to match English revision 1834263 added the hints secction to spanish X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b529e042ac1c8709a5b622c64b0c1a843ae63215;p=apache Updated to match English revision 1834263 added the hints secction to spanish git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1837169 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/docs/manual/howto/http2.html.es b/docs/manual/howto/http2.html.es index d529599c9b..2b304ab3cd 100644 --- a/docs/manual/howto/http2.html.es +++ b/docs/manual/howto/http2.html.es @@ -27,14 +27,11 @@  es  |  fr 

-
Esta traducción podría estar - obsoleta. Consulte la versión en inglés de la - documentación para comprobar si se han producido cambios - recientemente.
- -

Esta es la guía para configurar HTTP/2 en Apache httpd. Ésta - característica está lista en produción así que es de esperar que las - interfaces y las directivas se mantengan consistentes en cada verión. + +

+ Esta es la guía para configurar HTTP/2 en Apache httpd. Ésta característica + está lista en produción así que es de esperar que las interfaces + y las directivas se mantengan consistentes en cada verión.

Consulte también

top
@@ -52,13 +50,17 @@

HTTP/2 es la evolución del protocolo de la capa de aplicación con más - éxito, HTTP. Se centra en hacer un uso más eficiente de los recursos de red. No cambia la característica fundamental de HTTP, la semántica. Todavía hay solicitudes, respuestas, cabeceras y todo los elementos típicos de HTTP/1. Así que, si ya conoce HTTP/1, también conoce el 95% de HTTP/2.

+ éxito, HTTP. Se centra en hacer un uso más eficiente de los recursos de red. + No cambia la característica fundamental de HTTP, la semántica. Todavía hay + olicitudes, respuestas, cabeceras y todo los elementos típicos de HTTP/1. Así + que, si ya conoce HTTP/1, también conoce el 95% de HTTP/2.

Se ha escrito mucho sobre HTTP/2 y de cómo funciona. La norma más estándar es, por supuesto, su RFC 7540 ( también disponible en un - formato más legible, YMMV). Así que, ahí encontrará toda la especificación del protocolo.

+ formato más legible, YMMV). Así que, ahí encontrará toda la especificación + del protocolo.

Pero, como con todos los RFC, no es ideal como primera lectura. Es mejor entender primero qué se quiere hacer y después leer el RFC sobre @@ -70,34 +72,80 @@

Si le parece demasiado largo, o no lo ha leido, hay algunos términos y elementos a tener en cuenta cuando lea este documento:

top

HTTP/2 en Apache httpd

-

El protocolo HTTP/2 se implementa con su propio módulo httpd, llamado acertadamente mod_http2. Incluye el set completo de características descritas por el RFC 7540 y soporta HTTP/2 sobre texto plano (http:), así como conexiones seguras (https:). La variante de texto plano se llama 'h2c', la segura 'h2'. Para h2c permite el modo direct - y el Upgrade: a través de una solicitud inicial HTTP/1.

+ +

+ El protocolo HTTP/2 se implementa con su propio módulo httpd, llamado + acertadamente mod_http2. Incluye el set completo de + características descritas por el RFC 7540 y soporta HTTP/2 sobre texto + plano (http:), así como conexiones seguras (https:). La variante de texto + plano se llama 'h2c', la segura 'h2'. Para + h2c permite el modo direct + y el Upgrade: a través de una solicitud inicial HTTP/1. +

-

Una característica de HTTP/2 que ofrece capacidades nuevas para desarrolladores de web es Server Push. Vea esa sección para saber como su aplicación web puede hacer uso de ella.

+

+ Una característica de HTTP/2 que ofrece capacidades nuevas para + desarrolladores de web es Server Push. Vea esa sección + para saber como su aplicación web puede hacer uso de ella. +

top

Compilar httpd con soporte HTTP/2

-

mod_http2 usa la librería nghttp2 - como su implementación base. Para compilar mod_http2 necesita al menos la versión 1.2.1 de libnghttp2 instalada en su sistema.

-

Cuando usted ejecuta ./configure en el código fuente de Apache HTTPD, necesita indicarle '--enable-http2' como una opción adicional para activar la compilación de este módulo. Si su libnghttp2 está ubicado en una ruta no habitual (cualquiera que sea en su sistema operativo), puede indicar su ubicación con '--with-nghttp2=<path>' para ./configure.

+

+ mod_http2 usa la librería + nghttp2como su implementación base. Para compilar + mod_http2 necesita al menos la versión 1.2.1 de + libnghttp2 instalada en su sistema. +

+ +

+ Cuando usted ejecuta ./configure en el código fuente de + Apache HTTPD, necesita indicarle '--enable-http2' como una + opción adicional para activar la compilación de este módulo. Si su + libnghttp2 está ubicado en una ruta no habitual (cualquiera que + sea en su sistema operativo), puede indicar su ubicación con + '--with-nghttp2=<path>' para ./configure. +

Aunque puede que eso sirva para la mayoría, habrá quien prefiera un nghttp2 compilado estáticamente para este módulo. Para ellos existe la opción --enable-nghttp2-staticlib-deps. Funciona de manera muy similar a como uno debe enlazar openssl estáticamente para mod_ssl.

@@ -228,7 +276,11 @@
Link </xxx.css>;rel=preload, </xxx.js>; rel=preload
-

Si la conexión soporta PUSH, estos dos recursos se enviarán al cliente. Como desarrollador web, puede configurar estas cabeceras o bien directamente en la respuesta de su aplicación o configurar su servidor con:

+

+ Si la conexión soporta PUSH, estos dos recursos se enviarán al cliente. + Como desarrollador web, puede configurar estas cabeceras o bien + directamente en la respuesta de su aplicación o configurar su servidor con: +

<Location /xxx.html>
     Header add Link "</xxx.css>;rel=preload"
@@ -236,7 +288,8 @@
 </Location>
-

Si quiere usar enlaces con preload sin activar un PUSH, puede usar el parámetro nopush, como en:

+

Si quiere usar enlaces con preload sin activar un PUSH, puede + usar el parámetro nopush, como en:

Link </xxx.css>;rel=preload;nopush
@@ -248,13 +301,90 @@

Y hay más:

-

El módulo mantiene un registro de lo que se ha enviado con PUSH para cada conexión (hashes de URLs, básicamente) y no hará PUSH del mismo recurso dos veces. Cuando la conexión se cierra, la información es descartada.

+

+ El módulo mantiene un registro de lo que se ha enviado con PUSH para cada + conexión (hashes de URLs, básicamente) y no hará PUSH del mismo recurso dos + veces. Cuando la conexión se cierra, la información es descartada. +

-

Hay gente pensando cómo un cliente puede decirle al servidor lo que ya tiene, para evitar los PUSH de esos elementos, pero eso algo muy experimental ahora mismo.

+

+ Hay gente pensando cómo un cliente puede decirle al servidor lo que ya + tiene, para evitar los PUSH de esos elementos, pero eso algo muy + experimental ahora mismo. +

Otro borrador experimental que ha sido implementado en mod_http2 es el Campo de Cabecera - Accept-Push-Policy en la que un cliente puede, para cada solicitud, definir qué tipo de PUSH acepta.

+ Accept-Push-Policy en la que un cliente puede, para cada solicitud, definir + qué tipo de PUSH acepta.

+ +

+ Puede que PUSH no siempre lance la peticion/respuesta/funcionamiento que + uno espera. Hay varios estudios sobre este tema en internet, que explican + el beneficio y las debilidades de como diferentes funcionalidades del + cliente y de la red influyen en el resultado. + Por Ejemplo, que un servidor haga "PUSH" de recursos, no significa que el + navegador vaya a usar dichos datos. +

+

+ Lo más importante que influye en la respuesta que se envía, es la solicitud + que se simuló. La url de solicitud de un PUSH es dada por la aplicación, + pero ¿de donde vienen las cabeceras de la petición? por ejemplo si el PUSH + pide una cabecera accept-language y si es así, ¿con qué valor? +

+

Httpd mirará la petición original (la que originó el PUSH) y copiará las + siguientes cabeceras a las peticiones PUSH: + user-agent, accept, accept-encoding, + accept-language, cache-control. +

+

+ Todas las otras cabeceras son ignorados. Las cookies tampoco serán copiadas. + Impulsar los recursos que requieren una cookie para estar presente no + funcionará. Esto puede ser una cuestión de debate. Pero a menos que esto se + discuta más claramente con el navegador, evitemos el exceso de precaución y + no expongamos las cookies donde podrían o no ser visibles. +

+ +
top
+
+

"Early Hints"

+ + +

Una alternativa de "Pushear" recursos es mandar una cabecera + Link al cliente antes que la respuesta esté lista. Esto usa + una caracteristica de HTTP que se llama "Early Hints" y está descrita en + la RFC 8297.

+

Para poder usar esto, necesita habilitarlo explicitamente en el servidor + via

+ +
H2EarlyHints on
+ + +

(No está habilitado por defecto ya q ue algunos navegadores más antiguos + se caen con dichas respuestas.) +

+ +

si esta funcionalidad esta activada, puede usar la directiva + H2PushResource para que lance + "Early hints" y recursos mediante push: +

+
<Location /xxx.html>
+    H2PushResource /xxx.css
+    H2PushResource /xxx.js
+</Location>
+ +

+ Esto lanzará una respuesta "103 Early Hints" a un cliente + tan pronto como el servidor comience a procesar la solicitud. + Esto puede ser mucho antes que en el momento en que se determinaron los + primeros encabezados de respuesta, dependiendo de su aplicación web. +

+ +

+ Si la directiva H2Push está + habilitada, esto comenzará el PUSH justo después de la respuesta 103. + Sin embargo, si la directiva H2Push está dehabilitada, la respuesta 103 se le enviará al cliente. +

Idiomas disponibles:  en  | diff --git a/docs/manual/howto/http2.xml.es b/docs/manual/howto/http2.xml.es index 4939033269..9473e5c920 100644 --- a/docs/manual/howto/http2.xml.es +++ b/docs/manual/howto/http2.xml.es @@ -1,10 +1,9 @@ - + - - How-To / Tutoriales Guía HTTP/2

-

Esta es la guía para configurar HTTP/2 en Apache httpd. Ésta - característica está lista en produción así que es de esperar que las - interfaces y las directivas se mantengan consistentes en cada verión. +

+ Esta es la guía para configurar HTTP/2 en Apache httpd. Ésta característica + está lista en produción así que es de esperar que las interfaces + y las directivas se mantengan consistentes en cada verión.

mod_http2 @@ -39,13 +38,17 @@ El protocolo HTTP/2

HTTP/2 es la evolución del protocolo de la capa de aplicación con más - éxito, HTTP. Se centra en hacer un uso más eficiente de los recursos de red. No cambia la característica fundamental de HTTP, la semántica. Todavía hay solicitudes, respuestas, cabeceras y todo los elementos típicos de HTTP/1. Así que, si ya conoce HTTP/1, también conoce el 95% de HTTP/2.

+ éxito, HTTP. Se centra en hacer un uso más eficiente de los recursos de red. + No cambia la característica fundamental de HTTP, la semántica. Todavía hay + olicitudes, respuestas, cabeceras y todo los elementos típicos de HTTP/1. Así + que, si ya conoce HTTP/1, también conoce el 95% de HTTP/2.

Se ha escrito mucho sobre HTTP/2 y de cómo funciona. La norma más estándar es, por supuesto, su RFC 7540 ( también disponible en un - formato más legible, YMMV). Así que, ahí encontrará toda la especificación del protocolo.

+ formato más legible, YMMV). Así que, ahí encontrará toda la especificación + del protocolo.

Pero, como con todos los RFC, no es ideal como primera lectura. Es mejor entender primero qué se quiere hacer y después leer el RFC sobre @@ -57,34 +60,80 @@

Si le parece demasiado largo, o no lo ha leido, hay algunos términos y elementos a tener en cuenta cuando lea este documento:

HTTP/2 en Apache httpd -

El protocolo HTTP/2 se implementa con su propio módulo httpd, llamado acertadamente mod_http2. Incluye el set completo de características descritas por el RFC 7540 y soporta HTTP/2 sobre texto plano (http:), así como conexiones seguras (https:). La variante de texto plano se llama 'h2c', la segura 'h2'. Para h2c permite el modo direct - y el Upgrade: a través de una solicitud inicial HTTP/1.

+ +

+ El protocolo HTTP/2 se implementa con su propio módulo httpd, llamado + acertadamente mod_http2. Incluye el set completo de + características descritas por el RFC 7540 y soporta HTTP/2 sobre texto + plano (http:), así como conexiones seguras (https:). La variante de texto + plano se llama 'h2c', la segura 'h2'. Para + h2c permite el modo direct + y el Upgrade: a través de una solicitud inicial HTTP/1. +

-

Una característica de HTTP/2 que ofrece capacidades nuevas para desarrolladores de web es Server Push. Vea esa sección para saber como su aplicación web puede hacer uso de ella.

+

+ Una característica de HTTP/2 que ofrece capacidades nuevas para + desarrolladores de web es Server Push. Vea esa sección + para saber como su aplicación web puede hacer uso de ella. +

Compilar httpd con soporte HTTP/2 -

mod_http2 usa la librería nghttp2 - como su implementación base. Para compilar mod_http2 necesita al menos la versión 1.2.1 de libnghttp2 instalada en su sistema.

-

Cuando usted ejecuta ./configure en el código fuente de Apache HTTPD, necesita indicarle '--enable-http2' como una opción adicional para activar la compilación de este módulo. Si su libnghttp2 está ubicado en una ruta no habitual (cualquiera que sea en su sistema operativo), puede indicar su ubicación con '--with-nghttp2=<path>' para ./configure.

+

+ mod_http2 usa la librería + nghttp2como su implementación base. Para compilar + mod_http2 necesita al menos la versión 1.2.1 de + libnghttp2 instalada en su sistema. +

+ +

+ Cuando usted ejecuta ./configure en el código fuente de + Apache HTTPD, necesita indicarle '--enable-http2' como una + opción adicional para activar la compilación de este módulo. Si su + libnghttp2 está ubicado en una ruta no habitual (cualquiera que + sea en su sistema operativo), puede indicar su ubicación con + '--with-nghttp2=<path>' para ./configure. +

Aunque puede que eso sirva para la mayoría, habrá quien prefiera un nghttp2 compilado estáticamente para este módulo. Para ellos existe la opción --enable-nghttp2-staticlib-deps. Funciona de manera muy similar a como uno debe enlazar openssl estáticamente para mod_ssl.

@@ -223,7 +272,11 @@ ProtocolsHonorOrder Off Link </xxx.css>;rel=preload, </xxx.js>; rel=preload -

Si la conexión soporta PUSH, estos dos recursos se enviarán al cliente. Como desarrollador web, puede configurar estas cabeceras o bien directamente en la respuesta de su aplicación o configurar su servidor con:

+

+ Si la conexión soporta PUSH, estos dos recursos se enviarán al cliente. + Como desarrollador web, puede configurar estas cabeceras o bien + directamente en la respuesta de su aplicación o configurar su servidor con: +

<Location /xxx.html> @@ -232,10 +285,11 @@ Link </xxx.css>;rel=preload, </xxx.js>; rel=preload </Location> -

Si quiere usar enlaces con preload sin activar un PUSH, puede usar el parámetro nopush, como en:

+

Si quiere usar enlaces con preload sin activar un PUSH, puede + usar el parámetro nopush, como en:

-Link </xxx.css>;rel=preload;nopush + Link </xxx.css>;rel=preload;nopush

o puede desactivar PUSH para su servidor por completo con la directiva

@@ -246,13 +300,91 @@ H2Push Off

Y hay más:

-

El módulo mantiene un registro de lo que se ha enviado con PUSH para cada conexión (hashes de URLs, básicamente) y no hará PUSH del mismo recurso dos veces. Cuando la conexión se cierra, la información es descartada.

+

+ El módulo mantiene un registro de lo que se ha enviado con PUSH para cada + conexión (hashes de URLs, básicamente) y no hará PUSH del mismo recurso dos + veces. Cuando la conexión se cierra, la información es descartada. +

-

Hay gente pensando cómo un cliente puede decirle al servidor lo que ya tiene, para evitar los PUSH de esos elementos, pero eso algo muy experimental ahora mismo.

+

+ Hay gente pensando cómo un cliente puede decirle al servidor lo que ya + tiene, para evitar los PUSH de esos elementos, pero eso algo muy + experimental ahora mismo. +

Otro borrador experimental que ha sido implementado en mod_http2 es el Campo de Cabecera - Accept-Push-Policy en la que un cliente puede, para cada solicitud, definir qué tipo de PUSH acepta.

+ Accept-Push-Policy en la que un cliente puede, para cada solicitud, definir + qué tipo de PUSH acepta.

+ +

+ Puede que PUSH no siempre lance la peticion/respuesta/funcionamiento que + uno espera. Hay varios estudios sobre este tema en internet, que explican + el beneficio y las debilidades de como diferentes funcionalidades del + cliente y de la red influyen en el resultado. + Por Ejemplo, que un servidor haga "PUSH" de recursos, no significa que el + navegador vaya a usar dichos datos. +

+

+ Lo más importante que influye en la respuesta que se envía, es la solicitud + que se simuló. La url de solicitud de un PUSH es dada por la aplicación, + pero ¿de donde vienen las cabeceras de la petición? por ejemplo si el PUSH + pide una cabecera accept-language y si es así, ¿con qué valor? +

+

Httpd mirará la petición original (la que originó el PUSH) y copiará las + siguientes cabeceras a las peticiones PUSH: + user-agent, accept, accept-encoding, + accept-language, cache-control. +

+

+ Todas las otras cabeceras son ignorados. Las cookies tampoco serán copiadas. + Impulsar los recursos que requieren una cookie para estar presente no + funcionará. Esto puede ser una cuestión de debate. Pero a menos que esto se + discuta más claramente con el navegador, evitemos el exceso de precaución y + no expongamos las cookies donde podrían o no ser visibles. +

+ +
+
+ "Early Hints" + +

Una alternativa de "Pushear" recursos es mandar una cabecera + Link al cliente antes que la respuesta esté lista. Esto usa + una caracteristica de HTTP que se llama "Early Hints" y está descrita en + la RFC 8297.

+

Para poder usar esto, necesita habilitarlo explicitamente en el servidor + via

+ + +H2EarlyHints on + + +

(No está habilitado por defecto ya q ue algunos navegadores más antiguos + se caen con dichas respuestas.) +

+ +

si esta funcionalidad esta activada, puede usar la directiva + H2PushResource para que lance + "Early hints" y recursos mediante push: +

+ +<Location /xxx.html> + H2PushResource /xxx.css + H2PushResource /xxx.js +</Location> + +

+ Esto lanzará una respuesta "103 Early Hints" a un cliente + tan pronto como el servidor comience a procesar la solicitud. + Esto puede ser mucho antes que en el momento en que se determinaron los + primeros encabezados de respuesta, dependiendo de su aplicación web. +

+ +

+ Si la directiva H2Push está + habilitada, esto comenzará el PUSH justo después de la respuesta 103. + Sin embargo, si la directiva H2Push está dehabilitada, la respuesta 103 se le enviará al cliente. +