7
votes

Compression HTTP en-tête

Les en-têtes HTTP ne sont pas très efficaces. Des dizaines d'octets plus que les octets sont utilisés entre la méthode minimale et les en-têtes de réponse.

a eu une proposition de normalisation d'un format binaire ou compressé pour HTTP?

Y a-t-il une norme similaire en plus de HTTP qui est mieux adaptée aux applications mobiles interactives?


0 commentaires

4 Réponses :


0
votes

Bientôt, je dirais non et non. HTTP a été inventé, IMHO, de supprimer la communication de serveur / client propriétaire. Cela signifie-t-il que vous ne pouvez pas toujours faire de la communication de serveur / client exclusif? Non. Allez-y et écrivez votre propre serveur et protocole, ouvrez le port que vous souhaitez et que vous avez une balle.


4 commentaires

Binaire ne signifie pas exclusif. Il existe des RFCS pour la compression d'en-tête IP et je souhaite l'équivalent pour le niveau suivant de la pile.


Je suis corrigé alors. Si les RFC existent, ils ne sont pas largement adoptés, ce qui ne leur fait qu'une étape au-dessus de manière exclusive pour une utilisation pratique actuelle.


Même les en-têtes non compressés sont binaires à des niveaux inférieurs (TCP, IP et inférieur) que HTTP. La transition dans la pile entre le texte et le binaire est arbitraire. La motivation de la normalisation consiste à s'appuyer sur l'expérience des autres et à fonctionner avec des outils existants, mais peu nombreux en nombre, de sorte que de courir avec un grand troupeau n'est pas un facteur.


Le fonctionnement dans les outils existants est le point que je faisais. Pas le grand troupeau, le mauvais choix de mots de ma part. Je voulais dire que s'il faut un plugin Apache personnalisé, ou un problème non pris en charge, pour accomplir des en-têtes HTTP compressés, il est sous-idéal.



10
votes

comme référencé dans Stackoverflow - Comment compresser les en-têtes de réponse HTTP? :

Voir le projet de recherche SPDY de Google: Le projet de recherche SPDY de Google

de papier blanc SPDY :

Le rôle de la compression d'en-tête

La compression d'en-tête a entraîné une ~ 88% Réduction de la taille de la demande les en-têtes et une réduction d'environ 85% dans le taille des en-têtes de réponse. Sur le lien DSL de bande passante inférieure, dans lequel le Le lien de téléchargement n'est que de 375 kbps, demande Compression en-tête en particulier, LED à l'heure de chargement de la page importante Améliorations pour certains sites (c'est-à-dire ceux qui ont émis un grand nombre de Demandes de ressources). Nous avons trouvé un Réduction de 45 - 1142 ms en charge de la page temps simplement en raison de la compression d'en-tête.


1 commentaires

Spdy a l'air assez bon et complet, +1. J'ai besoin de voir si c'est léger ...



5
votes

http / 2.0 , actuellement dans une phase de rédaction, est une évolution de SPDY conçue pour aborder ces problèmes.

Spécifiquement, il remplace les lignes de demande et les en-têtes avec un format binaire compact. Il ajoute une installation de push-push de serveur et des flux multiplexes sur une seule connexion, afin d'éviter les frais généraux de plusieurs connexions et blocage de la file d'attente. Il y a diverses autres goodies.

Je travaille sur une implémentation légère / découpée C ++.


0 commentaires

5
votes

C'est une ancienne question et je pense qu'il a besoin d'une mise à jour. Bien que je n'ai aucune compréhension plus profonde de ce sujet moi-même, je suis tombé sur Ce très bon article qui explique la compression HPACK de http / 2 .

En bref, il est écrit:

  • SPDY a été vulnérable à l'attaque de la criminalité afin que personne n'a vraiment utilisé sa compression en-tête
  • http / 2 prend en charge un nouvel algorithme de compression d'en-tête dédié, appelé hpack
  • hpack est résilient au crime
  • hpack utilise trois méthodes de compression: Dictionnaire statique, dictionnaire dynamique, codage de Huffman

1 commentaires

Le crime a été beaucoup parlé - à propos du développement de hpack, mais il n'est pas si clair que les utilisateurs étaient en réalité préoccupés par cela. Ce fut une attaque très difficile de monter et de prévenir est une question de conception totale de sites Web, non seulement du protocole. Oui, cette question a besoin d'une nouvelle réponse sur hpack.