Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 9827|Répondre: 0

Encodage par transfert du protocole HTTP (en blocs)

[Copié le lien]
Publié sur 24/09/2019 18:07:57 | | | |
1. Contexte :

  • Problèmes de connexion persistants : Pour les connexions non persistantes, le navigateur peut définir les limites de l’entité requérante ou de réponse selon que la connexion est coupée ou non ; Pour les connexions continues, cette approche ne fonctionne évidemment pas. Parfois, même si j’ai envoyé toutes les données, le navigateur ne sait pas s’il y aura de nouvelles données sur la connexion ouverte, donc il attend simplement.
  • Résoudre avec la longueur du contenu : Calculez la longueur de l’entité et dites à l’autre partie à travers la tête. Le navigateur peut déterminer que l’entité de réponse est supérieure par l’information de longueur de la Longueur du Contenu
  • Nouveau problème avec la longueur du contenu : Puisque le champ Longueur du contenu doit vraiment refléter la longueur de l’entité, la longueur est inconnue pour le contenu généré dynamiquement tant que le contenu n’est pas créé. À ce stade, pour obtenir la longueur avec précision, vous ne pouvez ouvrir qu’un tampon suffisamment grand et attendre que tout le contenu soit généré avant de calculer. Cependant, cela nécessite plus de surcharge mémoire d’une part, et d’autre part, cela fera attendre le client plus longtemps.
  • Nous avons besoin d’un nouveau mécanisme qui ne dépend pas de la longueur de l’en-tête et qui connaisse les frontières des entités - Transfer-Encoding : chunked.

2. Encodage par transfert (en blocs)

  • Le transfer-encodage est un champ d’en-tête HTTP (champ d’en-tête de réponse), qui signifie littéralement « encodage de transfert ». La dernière spécification HTTP ne définit qu’un seul type de transport d’encodage : en blocs.
  • L’encodage par transfert en blocs est un mécanisme de transfert de données dans le protocole de transfert d’hypertexte (HTTP) qui permet de diviser les données HTTP envoyées par un serveur web au client en plusieurs parties. L’encodage par transport de blocs n’est disponible que dans la version 1.1 du protocole HTTP (HTTP/1.1).
  • Les données sont décomposées en une série de morceaux et envoyées en un ou plusieurs morceaux afin que le serveur puisse envoyer des données sans connaître à l’avance la taille totale du contenu envoyé.


Méthodes spécifiques

  • Après avoir ajouté Transfer-Encoding : chunked à l’en-tête, cela signifie que le paquet est chunké. Dans ce cas, les entités du paquet doivent être transmises en une série de blocs à la place.
  • Chaque morceau contient la valeur de longueur hexadécimale et les données, et la valeur de la longueur est exclusive à une ligne, et la longueur n’inclut pas le CRLF à la fin, ni le CRLF à la fin des données fragmentées.
  • La dernière valeur de longueur du chunk doit être 0, et les données du chunk correspondantes n’ont pas de contenu, indiquant la fin de l’entité.




asp.net Code de test de base :







Précédent:Longueur de contenu du protocole Http
Prochain:Trois facteurs qui me poussent à déprécier Chrome
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com