Quels navigateurs gèrent `Content-Encoding: gzip` et lequel d’entre eux a des exigences particulières en matière de qualité d’encodage?


44

Je crée un serveur HTTP 1.0, 1.1 "fabriqué à la main". J'ai récemment intégré zip lib pour pouvoir maintenant diffuser en flux continu des données codées en gziped. Je me demande quels navigateurs principaux (ceux qui sont en activité - IE6-IE10, Chrome, FF, etc.) envoient Accept-Encoding: deflate, gzip, ...et peuvent donc gérer Content-Encoding: gzipaujourd'hui? Lequel d'entre eux envoie des attentes de qualité? Lequel d'entre eux peut envoyer une demande de publication codée en gziped et des données multi-parties / formulaires à mon serveur?


1
Ne devriez-vous pas quand même vous fier à l'en-tête Accept-Encoding? Ou demandez-vous simplement par curiosité?
Flimzy

@Flimzy Si vous stockez des fichiers préalablement codés (ce que vous pouvez faire pour réduire la charge du processeur, pour réduire l'utilisation de l'espace disque, pour augmenter le niveau de compression ou pour servir des fichiers à partir d'un serveur entièrement statique) alors vous n'avez pas vraiment le luxe d'adhérer à l'en-tête Accept-Encoding. Si vous pouvez vous en tenir à l'en-tête, vous devriez bien sûr, mais étant donné le support quasi universel de gzip, il est correct de créer votre site Web pour qu'il nécessite le support de gzip.
Hayden Schiff

1
@ haydenschiff bien sûr, vous pouvez toujours honorer l'en-tête accept. Si vous stockez des données gzippées, vous êtes déjà prêt à décompresser le fichier pour le servir si l'en-tête d'acceptation l'impose.
Flimzy

Réponses:


49

Fondamentalement, chaque navigateur supporte de nos jours deflate / gzip. Cette page répertorie de nombreux navigateurs et numéros de version. Voici un résumé plus quelques nouveaux navigateurs:

  • Netscape 6+ (Netscape 4-5, mais avec quelques bugs).
  • Internet Explorer 5.5+ (juillet 2000) et IE 4 si défini sur HTTP / 1.1.
  • Opera 5+ (juin 2000)
  • Lynx 2.6+ (quelque temps avant 1999)
  • Firefox 0.9.5+ (octobre 2001)
  • Chrome depuis toujours
  • Safari depuis toujours (autant que je sache)

Comme vous pouvez le constater: depuis près de 15 ans, le support est complet et personne n’utilise un navigateur de plus de 15 ans.


1
+1 J'étais un peu confus, car cela semble être un problème inexistant. @ user1049847 peut-être avez-vous besoin d'élargir votre question ci-dessus?
Dim '19

3
Et pour ajouter à cela, aucun navigateur n'enverra de requête compressée gzip mais presque tous accepteront une réponse compressée. Voir " Pourquoi le navigateur ne peut-il pas envoyer de requête gzip? " Sur StackOverflow.
Marco Miltenburg

2
@Su 'a raison - n'importe quel navigateur prenant en charge gzip enverra l'en-tête Accept-Encoding afin que vous n'ayez pas à vous soucier des navigateurs qui le prennent en charge. Envoyez gzip quand ils vous disent qu'ils peuvent le recevoir.
DisgruntledGoat

12
La question est pertinente. Si vous distribuez des fichiers statiques à partir d'Amazon S3, de MS Azure et d'autres (comme beaucoup le font), vous ne pourrez pas répondre de manière dynamique à l'en-tête accept-encoding. La compression à la volée ajoute également une charge supplémentaire au processeur.
QFDev

1
@ QFDev Si vous servez des fichiers statiques, vous pouvez en créer une version gzippée et une autre non, et vérifier accept-encoding / gzip et modifier les fichiers statiques servis en conséquence.
JordanReiter
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.