Compartir a través de


Consideraciones sobre la compresión de diccionario compartido basada en zstd para HTTP

En este artículo se presentan consideraciones empresariales para la característica compresión de diccionario compartido basada en zstd para HTTP (ZSDCH).

Las consideraciones de infraestructura también se aplican en gran medida a la característica transporte de diccionario de compresión que ha implementado el proyecto de Chromium. La característica Compressed Dictionary Transport está disponible para los sitios a través del mecanismo de prueba de origen de Microsoft Edge 119 y versiones posteriores.

¿Qué es ZSDCH?

ZSDCH es una característica experimental de Microsoft Edge que permite al explorador usar un diccionario compartido para descomprimir las respuestas que se atienden a través de HTTPS. Cuando los usuarios visitan un sitio (bing.com, por ejemplo) mediante la característica, se benefician de un rendimiento mejorado a través de requisitos de ancho de banda reducidos para que el servidor envíe la página de vuelta al usuario.

La característica transporte de diccionario de compresión tiene como destino los mismos escenarios y funciona de forma similar.

¿Cómo funciona ZSDCH?

ZSDCH funciona haciendo que el explorador envíe un nuevo valor, "zsdch", en el encabezado de solicitud "Accept-Encoding" para indicar al servidor que el explorador admite la compresión ZSDCH.

Si el servidor quiere usar ZSDCH para futuras respuestas, proporciona la respuesta típica con una codificación de contenido que no sea ZSDCH, pero con un encabezado de respuesta "get-dictionary" adicional. Este encabezado proporciona un puntero a una ubicación para que el explorador capture un diccionario ZSDCH para su uso futuro.

Una vez que el explorador ha capturado y almacenado en caché el diccionario, las futuras solicitudes al servidor incluirán una lista de diccionarios disponibles en un encabezado "avail-dictionary". Si el servidor puede atender una respuesta comprimida mediante uno de los diccionarios disponibles, proporciona una respuesta mediante el diccionario y especifica una "codificación de contenido" de "zsdch".

¿Cómo funciona la característica transporte de diccionario de compresión?

De forma similar, cuando un diccionario de transporte de diccionario de compresión está disponible en el cliente durante el tiempo de solicitud, el transporte del diccionario de compresión anuncia valores adicionales de encabezado de solicitud "Accept-Encoding" ("sbr" o "zstd-d") junto con un encabezado de solicitud "Sec-Available-Dictionary".

¿Con qué sitios se prueban estas características?

Para validar las mejoras de rendimiento y la compatibilidad con varias topologías de red, Edge anuncia la compatibilidad con ZSDCH al solicitar contenido de bing.com, bing.cn y msn.com. Edge también admite pruebas locales publicitandola en servidores con el nombre de host "localhost".

La característica transporte de diccionario de compresión está siendo probada por varios sitios, incluidos los que no son de Microsoft, mediante el mecanismo de prueba de origen.

Posibles interacciones con middleboxes de red

Algunas empresas usan middleboxes de red que ofrecen funcionalidades de almacenamiento en caché o inspección de tráfico de red. A veces, estos productos tienen un requisito de que puedan analizar la respuesta; De lo contrario, pueden modificar o bloquear la respuesta de forma que se interrumpa la página.

Los cuadros intermedios que requieren que Content-Encoding sea una codificación que comprenda deben asegurarse de que modifican el valor de encabezado Accept-Encoding de las solicitudes para quitar las codificaciones no admitidas. De lo contrario, el servidor web puede optar por ofrecer una respuesta que el middlebox no podrá descodificar.

En el caso de las capas de almacenamiento en caché que no necesitan inspeccionar la respuesta, también deben admitir correctamente el encabezado "Vary" para asegurarse de que una respuesta del servidor que incluye los nombres de encabezado "avail-dictionary" o "sec-available-dictionary" en el valor "Vary" se controla correctamente y las respuestas comprimidas no se devuelven a los clientes que no tienen el diccionario adecuado.

Estas prácticas son genéricas y también se aplicarían a las codificaciones de contenido nuevas y futuras admitidas por los exploradores.

Un proxy o middlebox solo puede interferir con la compresión en una conexión TLS si está descifrando el tráfico TLS mediante un certificado de interceptación privado.

Para minimizar el riesgo para los entornos empresariales que no siguen los procedimientos recomendados anteriores, Edge deshabilita la característica ZDSCH cuando se detecta este tipo de cuadro intermedio de descifrado.

Para la característica Transporte de diccionario de compresión, se proporciona una directiva empresarial explícita (CompressionDictionaryTransportEnabled). Las empresas afectadas pueden usar la directiva para deshabilitar la característica mientras trabajan con proveedores para actualizar sus productos para controlar correctamente las codificaciones de contenido nuevas y desconocidas.

Comprobación de que ZSDCH está causando un problema en el entorno

Si cree que ZSDCH está causando un problema no deseado en su entorno, puede deshabilitar ZSDCH en Edge mediante estos pasos:

  1. Abra edge://flags.
  2. Busque "#edge-enable-zsdch-content-encoding".
  3. Establezca el valor de la característica en "Deshabilitado".
  4. Reinicie Edge para que el cambio surta efecto.
  5. Ejecute el escenario en el que se encontró un problema para determinar si se sigue produciendo o se resuelve.