63 votes

Pourquoi les serveurs du monde réel préfèrent-ils l'encodage par gzip plutôt que par défaut?

Nous savons déjà dégonfler l'encodage est un gagnant de plus de gzip par rapport à la vitesse d'encodage, le décodage et la compression de la taille.

Alors pourquoi ne pas faire de grands sites (que je peux trouver) envoyer (quand j'utilise un navigateur qui l'accepte)?

Yahoo revendications dégonfler est moins "efficace". Pourquoi?

Je maintiens HTTP server logiciel qui préfère se dégonfler, donc je voudrais savoir si il y a une très bonne raison de ne pas continuer à le faire.

74voto

Gumbo Points 279147

Il existe une certaine confusion quant à la dénomination entre les spécifications et les HTTP:

  • DÉGONFLER comme défini par la RFC 1951 est un comprimé de format de données.
  • ZLIB tel que défini par la RFC 1950 est un comprimé de format de données qui utilise le DÉGONFLER le format des données.
  • GZIP tel que défini par la RFC 1952 est un format de fichier qui utilise le DÉGONFLER données compressées au format.

Mais le HTTP utilise un autre appellation:

  • gzip Un format de codage produit par le programme de compression de fichiers "gzip" (GNU zip) comme décrit dans la RFC 1952 [25]. Ce format est un Lempel-Ziv codage (LZ77) avec un 32 bits CRC.

  • deflate Le "zlib" format défini dans la RFC 1950 [31] en combinaison avec le "dégonfler" mécanisme de compression décrit dans la RFC 1951 [29].

Donc, pour résumer:

  • gzip est le GZIP format de fichier.
  • deflate est en fait la ZLIB format de données. (Mais certains clients n'acceptent également les réels DÉGONFLER format de données pour l' deflate.)

Voir aussi cette réponse sur la question de savoir Quelle est la différence entre le "gzip" et de "dégonfler" HTTP 1.1 codages?:

Quelle est la différence entre le "gzip" et de "dégonfler" HTTP 1.1 codages?

"gzip" est le format gzip, et de "dégonfler" est la zlib format. Ils devraient probablement avoir appelé le second, "zlib" à la place pour éviter la confusion avec le raw compression deflate format de données. Alors que le HTTP 1.1 RFC 2616 correctement les points de la zlib de la spécification RFC 1950 pour "dégonfler" le codage de transfert, il ya eu des rapports de serveurs et les navigateurs qui incorrecte de produire ou de s'attendre à raw dégonfler données par le dégonfler specficiation dans la RFC 1951, notamment Microsoft. Ainsi, même si le "dégonfler" le codage de transfert à l'aide de la librairie zlib format serait le plus efficace (et, en fait, exactement ce que la zlib format a été conçu), à l'aide de la "gzip" codage de transfert est probablement plus fiable en raison d'un mauvais choix de nom de la part de la HTTP 1.1 les auteurs.

9voto

Steve Clay Points 3697

De mon minimale des tests, il apparaît que la plupart des HTTPds soit:

  1. ne prennent pas en charge dégonfler à la volée: Apache mod_deflate (une surprise), GWS
  2. ou préférez envoyer gzip: IIS, lighttpd est mod_compress

Ainsi, pour envoyer dégonfler le plus de succès sur le serveur (Apache), vous devez maintenir pré-encodés les fichiers et l'utilisation mod_negotiate (vous pourriez même avoir à utiliser de type cartes à préférer dégonfler).

Je suppose, en raison de cette dispute, dégonflez le pneu est très rarement utilisé, et par conséquent de bugs sont plus susceptibles d'exister dans client dégonfler le soutien que dans gzip soutien.

7voto

David Murdoch Points 28521

Visitez ce site internet pour plus d'informations: http://www.vervestudios.co/projects/compression-tests/


Dégonfler, par spec, est en fait zlib (un format de compression développé spécifiquement pour la diffusion de contenu sur le web)...qui est un wrapper autour de dégonfler.

Toutefois, Internet Explorer, met en œuvre de manière incorrecte HTTP 1.1 dégonfler (zlib) comme matières premières dégonfler. Donc, si votre serveur envoie correcte HTTP 1.1 dégonfler (zlib) contenu-à-dire qu'il étouffe.

J'ai étudié le sujet un peu et il semble sûr de TOUJOURS envoyer raw dégonfler pour les navigateurs modernes...assurez-son est, en fait, raw et pas zlib.

Voir cet article pour plus d'informations > Gzip vs Dégonfler (zlib) revisité.

Donc, je pense qu'il y a une bonne raison pour continuer À envoyer des dégonfler plus de gzip.

6voto

Mehrdad Afshari Points 204872

Pour autant que je sache (disclaimer: et je ne suis pas un expert ici, juste ce que j'ai entendu), gzip utilise le même algorithme que deflate mais il contient davantage d'en-tête qui lui donnent une taille plus grande (par rapport à deflate ). Cependant, je pense que deflate est pris en charge par moins de clients et de mandataires.

1voto

karim79 Points 178055

Je me demandais la même chose :). Je pense que cela pourrait être lié à la compatibilité d'anciens navigateurs (peut-être anciens). J'ai lu quelque part que les anciens navigateurs sont plus susceptibles de se glisser dans un contenu dégonflé que mod_gzipped dans certains cas (?), Mais cela a conduit Google à conclure qu'il est probablement préférable de cesser de le faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X