|
|
Objavljeno na 27. 11. 2019 10:42:41
|
|
|

Načelo nadaljevanja prelomnih točk je zelo preprosto, torej je glava HTTP zahteve in odgovora drugačna od običajnega prenosa. Pri zahtevi dokumenta na strežniku na običajen način sta zahteva, ki jo strežnik prejme, naslednja:
Glava zahteve:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost Glava odziva:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf Ko strežnik podpira nadaljevanje prekinitve, sta zahteva in odgovor naslednja:
Glava zahteve:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360- Glava odziva:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf Različni deli obeh sporočil so označeni z rdečimi sekcijami. Videti je lahko: Glava Range se uporablja za identifikacijo želene lokacije prenosa stranke. Ko je številka odgovora strežnika 200, to pomeni, da se prenos začne z glavo datoteke, 206 pa pomeni, da se prenos začne na določeni lokaciji datoteke. Z drugimi besedami, ko podpira obnovitev prekinitve, lahko začnete prenašati iz kateregakoli dela datoteke, medtem ko je običajen način prenos dovoljen le iz glave datoteke. Da bi strežnik podpiral ponovno uporabo prekinitev, je treba rešiti naslednje težave:
1。 Če gre za zahtevo za nadaljevanje, morate pridobiti obseg datotek, ki jih zahteva odjemalec. Kot lahko vidite iz zgornje analize, ko odjemalec pošilja prelomno točko, se polje Range doda glavi paketa in lahko določite, ali gre za zahtevo za prenos prekinitve, kot sledi. String Range = Request. Glave["Range"]; bool isResume = string. IsNullOrEmpty(range);
2。 Pravilno odgovoriti odjemalcu, da obvesti odjemalski strežnik, da je končna točka podprta za nadaljevanje Ko pošiljamo zahtevo za prekinitev, lahko ustrezno številko za odjemalca nastavimo takole: Odgovor. StatusCode = 206;
3。 Dostavite pravo vsebino, ki jo naročnik potrebuje Dostava pravilne vsebine, ki jo naročnik zahteva, običajno vključuje naslednje korake Pridobite obseg zahtev po datotekah odjemalca z analizo razpona. Ko je prelomna točka poslana, je zahtevana dolžina krajša od dolžine datoteke, zato je treba nastaviti pravilen odziv. VsebinaLength64 lastnina. Pravilno prenesite zahtevano vsebino Primer kode:
|
Prejšnji:httplistener posluša, da pridobi parametre zahteve POSTNaslednji:18 filozofskih stripov, vsi mojstri
|