Binary HTTP se refiere a las versiones modernas del Protocolo de Transferencia de Hipertexto, específicamente HTTP/2 y HTTP/3, que se desvían del formato de texto plano línea por línea de HTTP/1.x. En lugar de ello, utilizan un formato de trama binaria (binary framing layer) para encapsular y transmitir datos. Esta capa binaria permite la multiplexación de múltiples solicitudes y respuestas sobre una única conexión subyacente, eliminando el 'head-of-line blocking' a nivel de aplicación que era común en HTTP/1.x. HTTP/2 opera sobre TCP, mientras que HTTP/3 utiliza QUIC, un protocolo de transporte basado en UDP que integra cifrado TLS 1.3 y maneja la multiplexación y el control de flujo a nivel de transporte, mitigando el 'head-of-line blocking' incluso a nivel de red.
La implementación de Binary HTTP es omnipresente en la infraestructura web moderna. HTTP/2 es ampliamente soportado por todos los navegadores web principales (Chrome, Firefox, Edge, Safari) y servidores web como Nginx, Apache (con el módulo mod_http2) y Caddy. Muchas APIs y microservicios internos también adoptan HTTP/2 para mejorar la comunicación, especialmente en entornos de gRPC, que utiliza HTTP/2 como su capa de transporte subyacente. HTTP/3 está ganando tracción rápidamente, siendo soportado por navegadores como Chrome y Edge, y por CDNs como Cloudflare y Akamai, así como por servidores como Nginx (a través de módulos experimentales o versiones recientes) y Caddy, que lo soporta de forma nativa. La adopción de QUIC por parte de Google para sus servicios es un motor clave para la expansión de HTTP/3.
Para un Arquitecto de Sistemas, comprender Binary HTTP es crucial para diseñar sistemas distribuidos de alto rendimiento y baja latencia. La multiplexación de HTTP/2 y HTTP/3 reduce la sobrecarga de establecimiento de conexiones y permite un uso más eficiente de los recursos de red. Esto es vital para aplicaciones con muchos recursos (imágenes, scripts, estilos) o APIs con múltiples llamadas concurrentes. La elección entre HTTP/2 y HTTP/3 implica considerar los trade-offs: HTTP/2 es más maduro y ampliamente soportado, mientras que HTTP/3 (QUIC) ofrece ventajas significativas en redes inestables o con alta latencia, al mitigar el 'head-of-line blocking' a nivel de transporte y ofrecer un establecimiento de conexión más rápido (0-RTT/1-RTT). Un arquitecto debe evaluar la infraestructura existente, los requisitos de rendimiento y la tolerancia a la latencia para seleccionar la versión más adecuada, así como considerar el impacto en la configuración de firewalls y balanceadores de carga, especialmente con QUIC/UDP.