69 votes

Pourquoi le navigateur ne peut-il pas envoyer de requête gzip?

Si le serveur Web peut envoyer une réponse gzip, pourquoi le navigateur ne demande-t-il pas une requête gzip?

62voto

Peter Oehlert Points 6351

Le client et le serveur se mettre d'accord sur la façon de communiquer; une partie de cette est de savoir si la communication peut être comprimé. HTTP a été conçu comme une demande/réponse modèle, et la création originale a été presque certainement envisagé d'avoir toujours de petites demandes et potentiellement de grandes réponses. La Compression n'est pas nécessaire de mettre en œuvre HTTP, il y a des serveurs et des clients qui ne le supportent pas.

La compression HTTP est mis en œuvre par le client en disant: il peut prendre en charge la compression, et si le serveur voit cela dans la demande et il prend en charge la compression, il peut compresser la réponse. Pour compresser de la demande, le client devra disposer d'un "pré-demande" que réellement négocié que la demande serait faite comprimé OU il aurait à exiger de compression comme un codage pris en charge pour TOUTES les demandes.

27voto

Paul Dixon Points 122033

Un client ne peut pas savoir à l'avance qu'un serveur comprendrait une requête compressée, mais le serveur peut savoir que le client en acceptera une.

7voto

MarkR Points 37178

Il pourrait, si on peut garantir que le serveur de l'accepter. Cela pourrait signifier à l'aide d'une des OPTIONS de demande.

Il y a beaucoup de choses que les navigateurs web pourrait le faire (par exemple, le pipelining) qu'ils ne le font pas. Navigateur Web développeurs doivent prendre en compte la compatibilité des conséquences d'un changement.

Dans un environnement hétérogène, il y a beaucoup de différents serveurs web et des configurations. Faire un changement à la façon dont un client pourrait briser certains d'entre eux.

Peut-être seulement 1% des serveurs pourraient accepter gzippé demandes, mais peut-être certains de ceux de la publicité qu'ils font, mais ne peut pas correctement l'accepter - les utilisateurs pourraient donc être refusée dès le téléchargement de fichiers sur ces sites.

Historiquement il y a eu beaucoup de débris de client / serveur implémentations - pour une longue période, au format gzip réponses ont été brisées dans les principaux navigateurs web (heureusement ceux-ci sont maintenant pour la plupart disparu).

Donc, si vous voulez retrouver avec des listes noires des user-agents ou des serveurs (ou les noms de domaine) où ces options sont automatiquement mis à l'arrêt, qui est méchant.

3voto

Yuliy Points 8854

Parce qu'il ne sait pas que le serveur peut l'accepter. Une transaction HTTP a une seule requête envoyée par le client, suivie d'une réponse. Le client envoie notamment l’encodage / la compression qu’il peut prendre en charge. Le serveur peut alors décider comment compresser la réponse. Le client n'a pas ce luxe.

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