Http2 Y Spdy

security-now

Cómo funciona HTTP/2, protocolo que acelerá considerablemente la navegación Web

Hacía mucho tiempo que no traducía episodios del podcast Security Now!. Hoy os traigo la traducción del episodio #495, donde Steve describió al detalle el nuevo protocolo HTTP2, el cual lo ha desarrollado Google. Primero echaremos un vistazo a lo que tenemos en la actualidad, qué problemas presenta y qué soluciones ofrece HTTP2.

¿Qué hay mal en el protocolo actual?

  • Páginas web inmensas
  • Un modelo textual basado en petición/respuesta muy simple. Es el cliente quien solicita recursos, no el servidor quien las envía por sí mismo.
  • Cada petición es independiente, stateless y no presupone de ningún conocimiento o contexto previo.
  • TCP es muy lento al iniciar una conexión.
  • La negociación inicial de TLS también es muy costosa.
  • Se realizan múltiples conexiones.

HTTP2 corrige todos éstos problemas

HTTP2 se compone principalmente de (A lo largo del artículo se profundizará en éstos puntos):

  • Frames: Dividen la única conexión existente en varios frames enumerados. Se componen de:
    • Una cabecera de 9 bytes:
    • Los primeros 24 bits (Solo se usan 14 bits si no se tiene el permiso del otro pc)
    • 8 bits que determinan el tipo de frame.
    • 8 bits conteniendo los flags del frame.
    • 32 bits para el Identificador del flujo (Stream ID). El bit más significativo siempre es 0.
    • Payload de longitud variada.
  • Streams (flujos):
    • El solicitante puede asignarles prioridades.
    • Se les puede asignar inter-dependencias.
  • Compresión de cabeceras HTTP:
    • Cómo funciona LZ (Lempel-Ziv). (PKZIP, GZIP, LZW, LZA, etc).
    • Un único contexto comprimido para la conexión.
  • Speculative Push (Push especulativo).

Empecemos a profundizar en cada uno de éstos puntos: