Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 8759|Odgovoriti: 0

Podrobna interpretacija dolžine vsebine v HTTP protokolu

[Kopiraj povezavo]
Objavljeno na 24. 09. 2019 15:53:29 | | |
Vsebina-dolžina se uporablja za opis prenosne dolžine telesa sporočila. V HTTP protokolu obstaja razlika med dolžino entitete sporočila in dolžino prenosa entitete sporočila, na primer, pri gzip stiskanju je dolžina entitete sporočila dolžina pred stiskanjem, dolžina prenosa sporočila pa dolžina po gzip stiskanju.

Pri specifičnih HTTP interakcijah je način, kako odjemalec pridobi dolžino sporočila, predvsem na podlagi naslednjih pravil:

Če je odgovor 1xx, 204, 304 ali zahteva za glavo, se vsebina entitete sporočila neposredno prezre.
Če obstaja prenosno kodiranje, je metoda v prenosnem kodiranju zaželena za iskanje ustrezne dolžine. Na primer, model Chunked.
"Če je v glavi Vsebina-Dolžina, potem ta Vsebina-Dolžina predstavlja tako dolžino telesa kot prenosno dolžino. Če dolžina entitete in dolžina prenosa nista enaki (npr. Prenos-kodiranje je nastavljeno), potem vsebinske dolžine ni mogoče nastaviti.Če je Transfer-Encoding nastavljen, bo Content-Length prezrt”。 Prednost tega prevoda stavkov je, da obstaja le ena točka: pri prenosnem kodiranju ne more biti vsebinske dolžine.
Prenos razdalje. Nisem bil pozoren, nisem podrobno prebral :)
Zaprtje povezave preko strežnika določa dolžino sporočila, ki se prenaša. (Zahtevalec ne more označiti konca telesa zahteve z zaprtjem povezave, saj strežnik ne bi imel možnosti nadaljevati z odgovorom.) Ta situacija večinoma ustreza kratkim povezavam, torej načinu brez ohranjanja življenja.
HTTP 1.1 mora podpirati chunk način. Kajti kadar je dolžina sporočila negotova, se ta situacija lahko reši preko mehanizma kosov.
V glavi, ki vsebuje vsebino sporočila, če je polje dolžine vsebine, mora ustrezna vrednost polja natančno ustrezati dolžini teme sporočila.
"Dolžina entitete sporočila je dolžina telesa sporočila, preden so bile uporabljene kakršnekoli prenosne kode"
To jeČe obstaja del, ne more biti vsebinske dolžine

Mehanizem trajne povezave v HTTP/1.0 je bil uveden kasneje in je implementiran preko glave Connection: keep-alive, ki jo lahko strežnik in odjemalec uporabita za medsebojno komunikacijo, da po pošiljanju podatkov za kasnejšo uporabo ne potrebujeta prekiniti TCP povezave.HTTP/1.1 zahteva, da so vse povezave trajneRazen če eksplicitno dodaš Connection: blizu glave。 Torej polje Povezava v glavi v HTTP/1.1 nima več vrednosti za ohranjanje povezave, vendar zaradi zgodovinskih razlogov številni spletni strežniki in brskalniki še vedno ohranjajo navado pošiljanja dolgih povezav Povezava: keep-alive na HTTP/1.1.

Pravzaprav lahko zadnje nekaj skoraj spregledamo, kratek povzetek pa je naslednji:


1. Dolžina vsebine: Če obstaja in je veljavna, mora biti natanko enaka dolžini prenosa vsebine sporočila. (Testirano, da se skrajša, če je prekratko in predolgo, da bi povzročilo časovno omejitev.) )
2. Če je Transfer-Encoding (fokus je razdeljen na dele), v glavi ne more biti Content-Length in bo prezrt.
3. Če je uporabljena kratka povezava, se dolžina prenosa sporočila lahko določi neposredno z zaprtjem povezave prek strežnika. (To je lahko razumljivo)
V kombinaciji z drugimi funkcijami HTTP protokola, na primer, Http1.1 ni podpiral ohranjanja živosti. Nato lahko potegnemo naslednje zaključke:
1. V različicah Http 1.0 in starejših je polje dolžine vsebine neobvezno.
2. V različicah http1.1 in novejših. Če ostaneš živ, potem morata biti dolžina vsebine in del del eden od obeh. Če ni 'Keep Alive', je enak kot http1.0. vsebinska dolžina.





Prejšnji:"Node.js: Ducat C++ razširitev" pdf skenirana različica [146MB]
Naslednji:Vsebinska dolžina http protokola
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com