Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9827|Atbildi: 0

HTTP protokola pārsūtīšanas kodējums (sadalīts)

[Kopēt saiti]
Publicēts 24.09.2019 18:07:57 | | | |
1. Vispārīga informācija

  • Pastāvīgas savienojuma problēmas: nepastāvīgiem savienojumiem pārlūkprogramma var definēt pieprasījuma vai atbildes entītijas robežas pēc tā, vai savienojums ir pārtraukts; Nepārtrauktiem savienojumiem šī pieeja acīmredzami nedarbojas. Dažreiz, lai gan esmu nosūtījis visus datus, pārlūkprogramma nezina, vai atvērtajā savienojumā ienāks jauni dati, tāpēc tā vienkārši gaida.
  • Atrisināt ar satura garumu: aprēķiniet entītijas garumu un pastāstiet otrai pusei caur galvu. Pārlūkprogramma var noteikt, ka atbildes entītija ir beigusies pēc satura garuma informācijas
  • Jauna problēma ar satura garumu: Tā kā laukam Content-Length patiesi jāatspoguļo entītijas garums, dinamiski ģenerēta satura garums nav zināms, kamēr saturs nav izveidots. Šobrīd, lai precīzi iegūtu garumu, varat atvērt tikai pietiekami lielu buferi un gaidīt, līdz viss saturs tiks ģenerēts pirms aprēķināšanas. Tomēr, no vienas puses, tas prasa vairāk atmiņas pieskaitāmās izmaksas, un, no otras puses, tas liks klientam gaidīt ilgāk.
  • Mums ir nepieciešams jauns mehānisms, kas nepaļaujas uz galvenes garumu un zina entītiju robežas - Transfer-Encoding: chunked.

2. Pārsūtīšanas kodēšana (sadalīta)

  • Pārsūtīšanas kodējums ir HTTP galvenes lauks (atbildes galvenes lauks), kas burtiski nozīmē "pārsūtīšanas kodējums". Jaunākā HTTP specifikācija definē tikai vienu kodējuma transporta veidu: fragmentu.
  • Fragmentu pārsūtīšanas kodējums ir datu pārsūtīšanas mehānisms hiperteksta pārsūtīšanas protokolā (HTTP), kas ļauj sadalīt HTTP datus, ko tīmekļa serveris nosūta klientam, vairākās daļās. Bloku transporta kodējums ir pieejams tikai HTTP protokola versijā 1.1 (HTTP/1.1).
  • Dati tiek sadalīti vairākos gabalos un nosūtīti vienā vai vairākos gabalos, lai serveris varētu nosūtīt datus, iepriekš nezinot nosūtītā satura kopējo lielumu.


Īpašas metodes

  • Pēc pārsūtīšanas kodēšanas: pievienošanas galvenei, tas nozīmē, ka pakete ir sadalīta. Šajā gadījumā paketes entītijas ir jāpārsūta vairākos gabalos.
  • Katrs gabals satur heksadecimālo garuma vērtību un datus, un garuma vērtība ir ekskluzīva vienai rindai, un garums neietver CRLF tās beigās, ne CRLF sadalīto datu beigās.
  • Pēdējai gabala garuma vērtībai jābūt 0, un atbilstošajiem gabala datiem nav satura, kas norāda entītijas beigas.




asp.net Core testa kods:







Iepriekšējo:Http protokola satura garums
Nākamo:Trīs faktori, kas liek man novecot pārlūku Chrome
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com