Si le serveur Web peut envoyer une réponse gzip, pourquoi le navigateur ne demande-t-il pas une requête gzip?
Réponses
Trop de publicités?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.
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.
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.