Análisis de las cabeceras HTTP que envía Chrome en una petición moderna

Fuentes: A modern HTTP request

Un desarrollador montó un servidor HTTP trivial con netcat y capturó las cabeceras que envía Google Chrome al cargar una página. El resultado muestra una petición HTTP/1.1 GET con más de una docena de cabeceras, muchas de ellas pensadas para mejorar la privacidad y la seguridad. Entre las más relevantes están las de la familia sec-ch-ua, que sustituyen al clásico User-Agent; DNT (Do Not Track), sec-gpc y permissions-policy, que transmiten preferencias de privacidad del usuario; y el conjunto Sec-Fetch (Sec-Fetch-Site, Sec-Fetch-Mode, Sec-Fetch-User y Sec-Fetch-Dest), que describe la intención de la petición y se utiliza para tomar decisiones de seguridad frente a CSRF o CORS. La cabecera Upgrade-Insecure-Requests indica al servidor que redirija a HTTPS si es posible. El artículo también explica que las cabeceras con el prefijo sec- son cabeceras prohibidas: solo el navegador puede fijarlas, nunca JavaScript de la página, aunque las extensiones sí pueden añadirlas. Por último, se mencionan los HTTP Trailers, un mecanismo de HTTP/1.1 de 1997 que permite enviar cabeceras adicionales al final de la respuesta, útil cuando los datos solo se conocen tras un POST largo y compatible con la codificación chunked.