Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 9827|Svar: 0

HTTP-protokoll Transfer-Encoding (chunked)

[Kopiera länk]
Publicerad på 2019-09-24 18:07:57 | | | |
1. Bakgrund:

  • Persistenta anslutningsproblem: För icke-persistenta anslutningar kan webbläsaren definiera gränserna för den begärande eller svarande enheten utifrån om anslutningen är nere eller inte; För kontinuerliga kopplingar fungerar denna metod uppenbarligen inte. Ibland, även om jag har skickat all data, vet inte webbläsaren om det kommer in ny data via den öppna anslutningen, så den väntar bara.
  • Lös med innehållslängd: Beräkna entitetslängden och berätta för den andra parten genom huvudet. Webbläsaren kan se att svarsenheten är över genom längdinformationen för Content-Length
  • Nytt problem med innehållslängd: Eftersom fältet Innehållslängd verkligen måste spegla entitetslängden, är längden okänd för dynamiskt genererat innehåll tills innehållet skapas. Just nu, för att få längden exakt, kan du bara öppna en tillräckligt stor buffert och vänta tills allt innehåll är genererat innan du beräknar. Detta kräver dock mer minnesöverhead å ena sidan, och å andra sidan gör det att klienten väntar längre.
  • Vi behöver en ny mekanism som inte är beroende av huvudets längd och känner till entiteternas gränser – Transfer-Encoding: chunked.

2. Överföringskodning (chunked)

  • Överföringskodning är ett HTTP-headerfält (response header-fält), vilket bokstavligen betyder "överföringskodning". Den senaste HTTP-specifikationen definierar endast en typ av kodningstransport: chunked.
  • Chunked transfer-kodning är en dataöverföringsmekanism i Hypertext Transfer Protocol (HTTP) som tillåter att HTTP-data som skickas av en webbserver till klienten kan delas upp i flera delar. Blocktransportkodning finns endast tillgänglig i HTTP-protokoll version 1.1 (HTTP/1.1).
  • Data delas upp i en serie bitar och skickas i en eller flera bitar så att servern kan skicka data utan att veta den totala storleken på det skickade innehållet i förväg.


Specifika metoder

  • Efter att ha lagt till Transfer-Encoding: chunked i headern betyder det att paketet är chunked. I detta fall måste entiteterna i paketet istället överföras i en serie av chunks.
  • Varje chunk innehåller värdet av hexadecimallängd och data, och längdvärdet är exklusivt för en rad, och längden inkluderar inte CRLF i slutet av den, inte heller CRLF i slutet av den chunkade datan.
  • Det sista chunklängdsvärdet måste vara 0, och motsvarande chunkdata har inget innehåll, vilket indikerar slutet på entiteten.




asp.net Kärntestkod:







Föregående:Innehållslängd för Http-protokollet
Nästa:Tre faktorer som gör att jag avskaffar Chrome
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com