¿Qué navegadores manejan `Content-Encoding: gzip` y cuál de ellos tiene algún requisito especial sobre la calidad de codificación?

44

Estoy creando un servidor HTTP 1.0, 1.1 "hecho a mano". Recientemente integré zip lib, así que ahora puedo transmitir y recibir datos codificados de gziped. Me pregunto qué navegadores principales (los vivos: IE6-IE10, Chrome, FF, etc.) envían Accept-Encoding: deflate, gzip, ...y, por lo tanto, pueden manejar Content-Encoding: gziphoy. ¿Cuál de ellos envía expectativas de calidad? ¿Cuál de ellos puede enviar una solicitud de correo codificada gziped y datos multiparte / formulario a mi servidor?

usuario1049847
fuente
1
¿No deberías confiar en el encabezado Accept-Encoding de todos modos? ¿O solo preguntas por curiosidad?
Flimzy
@Flimzy Si está almacenando archivos que han sido codificados de antemano (lo que podría hacer para reducir la carga de la CPU, disminuir el uso de espacio en disco, aumentar el nivel de compresión o porque está sirviendo archivos desde un servidor completamente estático) , entonces realmente no tiene el lujo de adherirse al encabezado Accept-Encoding. Si puede obedecer el encabezado, por supuesto que debería hacerlo, pero dado el soporte prácticamente universal de gzip hoy en día, está bien construir su sitio web para requerir el soporte de gzip.
Hayden Schiff
1
@haydenschiff, por supuesto, aún puede honrar el encabezado de aceptación. Si está almacenando datos comprimidos, ya está preparado para descomprimirlos para servirlos si el encabezado de aceptación lo dicta.
Flimzy

Respuestas:

49

Básicamente, cada navegador hoy en día es compatible con deflate / gzip. Esta página enumera muchos navegadores y números de versión. Aquí hay un resumen más algunos navegadores más nuevos:

  • Netscape 6+ (Netscape 4-5 sí, pero con algunos errores).
  • Internet Explorer 5.5+ (julio de 2000) e IE 4 si está configurado en HTTP / 1.1.
  • Opera 5+ (junio de 2000)
  • Lynx 2.6+ (algún tiempo antes de 1999)
  • Firefox 0.9.5+ (octubre de 2001)
  • Chrome desde siempre
  • Safari desde siempre (por lo que puedo decir)

Como puede ver: durante casi 15 años, hay soporte completo, y nadie usa un navegador de más de 15 años.

oezi
fuente
1
+1 Estaba un poco confundido, ya que esto parece un problema inexistente. @ user1049847 ¿tal vez necesite ampliar su pregunta anterior?
Su '
3
Y para agregar a esto, ningún navegador enviará una solicitud comprimida de gzip, pero casi todos aceptan una respuesta comprimida de gzip. Consulte " ¿Por qué el navegador no puede enviar la solicitud gzip? " En StackOverflow.
Marco Miltenburg
2
@Su 'tiene razón: cualquier navegador que admita gzip enviará el encabezado Accept-Encoding para que no tenga que preocuparse exactamente de qué navegadores admiten esto. Envía gzip cuando te digan que pueden recibirlo.
DisgruntledGoat
12
La pregunta es relevante. Si está sirviendo archivos estáticos de Amazon S3, MS Azure y otros (como muchos lo hacen), no podrá responder dinámicamente al encabezado de codificación de aceptación. También la compresión sobre la marcha pone una carga adicional en la CPU.
QFDev
1
@QFDev si está sirviendo archivos estáticos, puede crear una versión que esté comprimida y otra que no lo esté y verificar la codificación de aceptación / gzip y cambiar los archivos estáticos servidos en consecuencia.
JordanReiter