HTTP (Hypertext Transfer Protocol) protocolo que permite la transferencia de datos a través de
la web. Este protocolo se implementa desde 1991, y ha ido evolucionando hasta llegar a la
versión más ampliamente conocida la 1.1. Al inicio de la historia el protocolo HTTP solo
permitía realizar peticiones sin especificar el verbo, es decir solo se podían hacer peticiones
GET con el pasar del tiempo se mejoraron las cosas y se agregó el soporte a algunos verbos
como GET, POST y HEAD, se implementó los códigos de estado HTTP entre otras muchas
mejoras. Lo que tienen en común todas estas versiones es que tanto las respuestas como las
peticiones se realizan a través de texto plano.
HTTP/2 es un protocolo binario que conserva la misma semántica que el protocolo HTTP1.X
busca resolver los defectos que tiene la comunicación a través TCP. Está basado en algunas de
las ideas del protocolo SPDY, el cual actualmente se considera obsoleto pues se ha apostado
completamente por el protocolo HTTP/2.
Ventajas
MULTIPLEXED STREAMS
Provee los recursos en partes más pequeñas, pasando todos ellos a través de una misma
conexión. Es decir, enviamos muchas peticiones y respuestas diferentes a través de una misma
conexión, esto elimina congestiones causadas por muchas conexiones cuando se trata de
descargar al mismo tiempo texto, fuentes e imágenes desde el servidor a su navegador.
SERVER PUSH
Envía recursos a la cache del navegador sin que este los solicite reutilizando la conexión con el
cliente, enviándole recursos que probablemente vaya a necesitar. Envía los archivos de CSS,
imágenes o fuentes antes de que el navegador haya interpretado el contenido HTML y los
solicite, así cuando el navegador los necesita estos recursos están disponibles.
COMPRESION DE HEADERS
Cada solicitud enviada tiene una pequeña pieza de información adicional que son los
encabezados HTTP o HEADERS, que describen cómo se comporta un navegador o un servidor.
Todas las cabeceras se empaquetan en un solo bloque comprimido para ser enviados como
una unidad. Una vez finalizada la transmisión, se decodifica el bloque de cabeceras del otro
lado.
FORMATO BINARIO EN LUGAR DE TEXTO
Los protocolos binarios son más eficientes para interpretar, más compactos al ser
transportados, son mucho menos propenso a errores comparados con los protocolos basados
en texto, se definen hasta 4 formas de interpretar un mensaje, mientras tanto en HTTP/2 solo
existe una.
La desventaja quizás es que el protocolo HTTP/2 no se usa a través de telnet, pero ya existen
algunas herramientas que lo soportan.
Qué es el HTTP/3 y qué es lo que cambia
HTTP/3 es el nombre oficial de la próxima versión de protocolo de comunicaciones que
permite las transferencias en la web. Esta nueva versión tiene un cambio muy importante,
pues será la que deje de utilizar por primera vez el protocolo TCP que hasta ahora se ha venido
utilizando en el HTTP, y lo sustituirá un nuevo protocolo llamado QUIC, e inicialmente
desarrollado por Jim Roskind en Google.
El sustituto para este protocolo en HTTP/3 será QUIC, siglas que significan Quick UDP Internet
Connections. En castellano, significa Conexiones UDP Rápidas en Internet. Está basado en otro
viejo protocolo de los años 80 llamado UDP, y que a diferencia del TCP no requiere del
intercambio continuo de información entre el emisor y el receptor del paquete de información.
El protocolo de transferencia ya no se encarga de la integridad de los datos, ese peso recaerá
de cada aplicación que lo use.
Vamos, que con UDP los paquetes se envían al receptor sin más, y el emisor no espera a que el
receptor le diga si han llegado o no: los sigue enviando pase lo que pase, lo que hace que no
haya garantías de que el receptor está recibiendo todos los paquetes. El protocolo se usa con
frecuencia en emisiones en broadcasts e incluso en juego online, y Google ya ha integrado
soporte en Chrome.