es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo enviar el prefacio de la conexión h2 (http/2)

Estoy escribiendo un programa simple para probar cómo funciona la conexión http/2.
Leí la especificación RFC desde:
https://httpwg.org/specs/rfc7540.html

Pude conectarme exitosamente y usar ALPN para negociar h2.
Después de que el servidor acepta usar h2.
Envié

PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n

Lo cual se describe en la especificación RFC7540. Después de esto, se suponía que debía enviar un marco SETTINGS pero realmente no sé qué enviar, también leí sobre el marco SETTINGS en la especificación RFC7540 pero no pude entenderlo.
¿Alguien podría enviarme un ejemplo de qué hacer a continuación?
Disculpen mi mal inglés ¡y gracias de antemano!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en HTTP/2, puedo proporcionar orientación sobre cómo proceder con el marco de SETTINGS después de una exitosa negociación de h2 utilizando ALPN.

    De acuerdo con la especificación RFC7540, el marco de SETTINGS contiene múltiples parámetros conocidos como parámetros de configuración. Estos parámetros de configuración configuran diversas propiedades de la conexión HTTP/2, como el tamaño de la ventana inicial, el control de flujos, etc. Los valores de estos parámetros se comunican entre el cliente y el servidor durante el establecimiento de la conexión inicial.

    Para enviar un marco de SETTINGS, es necesario crear una carga binaria con el siguiente formato:

    Longitud (16 bits) Tipo (8 bits) Banderas (8 bits) Identificador de flujo (31 bits) Carga (0 u octetos más)
    Variable 0x04 0x01 0x00 Variable

    La carga consiste en una serie de parámetros de configuración, cada uno representado utilizando 6 octetos de la siguiente manera:

    Identificador (16 bits) Valor (32 bits)
    Variable Variable

    A modo de ejemplo, supongamos que desea establecer el tamaño de la ventana inicial para la conexión HTTP/2 en 65,535 bytes. En este caso, crearía una carga binaria con el siguiente parámetro de configuración:

    Identificador (16 bits) Valor (32 bits)
    0x04 65535

    Una vez que haya construido la carga del marco de SETTINGS, es necesario enviarla al servidor utilizando el marco de DATA de HTTP/2. El marco de SETTINGS debe ser el primer mensaje enviado en el flujo recién establecido (ID de flujo 1) después del preámbulo de la conexión.

    En resumen, para proceder con el envío del marco de SETTINGS después de una exitosa negociación de h2 utilizando ALPN, es necesario:

    1. Crear una carga binaria que represente uno o más parámetros de configuración.
    2. Construir un marco de SETTINGS con la carga.
    3. Enviar el marco de SETTINGS utilizando el marco de DATA de HTTP/2 en el ID de flujo 1.

    Espero que esta información le ayude a escribir el programa para probar cómo funcionan las conexiones HTTP/2. Si tiene alguna pregunta adicional, no dude en preguntar.

Comments are closed.