|
|
Közzétéve 2019. 11. 27. 10:42:41
|
|
|

A megszakítási pont folytatásának elve nagyon egyszerű, vagyis a HTTP kérés és válasz üzenet fejléce eltér a normál letöltéstől. Amikor egy dokumentumot normál módon kérsz egy szerveren, a megtett és a kapott kérés a következők:
Kérés fejléce:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost Válasz fejléce:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf Amikor a szerver támogatja a megszakítási pont újraindítását, a kérés és a válasz a következők:
Kérés fejléce:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360- Válasz fejléce:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf A két üzenet különböző részeit piros szakaszokkal jelölik. Látható: A Range fejlécet arra használják, hogy azonosítsák az ügyfél kívánt letöltési helyét. Ha a szerver válaszszáma 200, az azt jelenti, hogy a letöltés a fájlfejlécből indul, a 206 pedig azt jelenti, hogy az átvitel a fájl egy adott helyéről indul. Más szóval, amikor támogatod a megszakítási pont újraindítását, elkezdheted a letöltést a fájl bármely részéről, míg a normál mód csak a fájlfejlécből tud letölteni. Ahhoz, hogy a szerver támogassa a megszakítási pont újraindítását, a következő problémákat kell megoldani:
1。 Ha folytatási kérésről van szó, akkor meg kell szerezned a kliens által előírt fájltartományt. Ahogy a fenti elemzésből is látható, amikor a kliens megszakítási pontot továbbít, a Range mező hozzáadódik a csomagfejléchez, és az alábbiak szerint megállapíthatod, hogy megszakítási pont átviteli kérésről van szó. string range = kérés. Fejlécek["Range"]; bool isResume = string. IsNullOrEmpty(távolság);
2。 Megfelelően válaszolj az ügyfélnek, hogy értesítsd az ügyfélszervert arról, hogy a végpont támogatott a folytatáshoz Megszakítási pont kérésekor a kliens megfelelő száma a következőképpen állítható: válasz. StatusCode = 206;
3。 A megfelelő tartalmat szolgáltasd meg, amire az ügyfélnek szüksége van Az ügyfél által elvárt megfelelő tartalom biztosítása általában a következő lépéseket foglalja magában A kliens fájlkérés tartományát elemzve szerezze meg a fájlkérés tartományát. Amikor megszakításpontot küldenek, a szükséges hossz rövidebb, mint a fájl hossza, ezért a helyes választ kell beállítani. ContentLength64 tulajdonság. A szükséges tartalom helyes átvitele Kód példa:
|
Előző:a httplistener meghallgatja, hogy megkapja a POST kérésparamétereketKövetkező:18 filozófiai képregény, akik mind mesterek
|