En este artículo hablaremos sobre el protocolo HTTP, las novedades con la nueva versión 2.0 y las diferencias entre la versión 1.X y la nueva 2.0.
Además, nos haremos eco de que el pasado 3 de diciembre el famoso servicio CloudFlare activó la opción de usar HTTP2 en sus comunicaciones.
Pero antes, para poder entender mejor la razón de existir de este protocolo, daremos una pequeña explicación sobre HTTP.
Tras el nacimiento de Internet, se vio la necesidad de establecer un protocolo de comunicación sencilla. Científicos del CERN crearon entonces un protocolo que combinaba varias tecnologías:
Estas tecnologías, bien establecidas, se englobaron en el protocolo HTTP, dando a una forma común en Internet para comunicar sistemas distribuidos.
Ahora vamos a explicar de forma breve el protocolo HTTP.
Este protocolo es sin estado, esto significa que cada comunicación entre cliente y servidor no mantiene información. Cómo es habitual mantener cierta información de estado, se han desarrollado estrategias para mantener un estado fuera del protocolo HTTP (Cookies y Sessions).
Además define una nomenclatura para "llamar" a recursos ubicados en la máquina que hace de servidor, de la siguiente forma:
http://[dominio o ip]:[puerto]/[ruta_recurso]?[atributo]
El pasado mes de febrero se publicó la versión 2.0, tras más de 15 años sin actualizarse.
La versión 2, es compatible con el funcionamiento de las versiones 1.1 y 1.0. Manteniendo los mismos códigos de estado (1XX, 2XX, 3XX, 4XX, 5XX), métodos (GET, POST, PUT, HEAD, etc) y la estructura de la cadena de llamada. Las diferencias se enumeran a continuación:
En definitiva, podremos disponer de carga más rápida para todos los recursos de la página.
Para hacer funcionar el protocolo HTTP 2, es necesario que tanto el cliente como el servidor tenga soporte. En el caso de que algunos de los dos no tengan soporte, en la negociación de protocolo, se usarían versiones anteriores.
En el entorno cliente, los navegadores modernos actualizados tienen soporte (Chrome, Firefox, etc). Algunos navegadores que no tienen soporte contarán con ello próximamente.
En el entorno servidores, existen implementaciones oficiales para multitud de entornos (Apache, Dart, Jetti, etc...) que están disponibles aquí. Por otra parte, en los servidores que hacen de intermediario como CloudFire, cada vez más se ofrece soporte para HTTP 2.
Fuente: http://www.genbetadev.com/