|
|
Zveřejněno 27.11.2019 10:42:41
|
|
|

Princip pokračování breakpointů je velmi jednoduchý, tedy hlavička HTTP požadavku a odpovědi se liší od běžného stahování. Při běžném požadavku na server jsou požadavky a obdržené servery následující:
Hlavička požadavku:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost Hlavička odpovědi:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf Když server podporuje obnovení přerušovacího bodu, požadavky a odpovědi jsou následující:
Hlavička požadavku:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360- Hlavička odpovědi:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf Různé části obou zpráv jsou označeny červenými sekcemi. Lze ji vidět: Záhlaví Range slouží k identifikaci požadovaného místa stahování zákazníka. Když je číslo odpovědi serveru 200, znamená to, že stahování začíná z hlavičky souboru, a 206 znamená, že přenos začíná z konkrétního místa souboru. Jinými slovy, při podpoře obnovení breakpointu můžete začít stahovat z jakékoli části souboru, zatímco běžným způsobem lze stahovat pouze z hlavičky souboru. Aby server podporoval obnovení breakpointů, je třeba vyřešit následující problémy:
1。 Pokud jde o požadavek na obnovení, musíte získat rozsah souborů požadovaný klientem. Jak je vidět z výše uvedené analýzy, když klient vysílá breakpoint, pole Range se přidá do hlavičky paketu a můžete určit, zda se jedná o požadavek na přerušovací přenos následujícím způsobem. rozsah řetězce = požadavek. Hlavičky["Range"]; bool isResume = řetězec. IsNullOrEmpty(rozsah);
2。 Správně reagovat na klienta a upozornit server, že endpoint je podporován pro pokračování Při odeslání požadavku na breakpoint lze nastavit odpovídající číslo pro klienta následovně: odpověď. StatusCode = 206;
3。 Dodat správný obsah, který klient potřebuje Doručení správného obsahu požadovaného klientem obvykle zahrnuje následující kroky Získejte rozsah požadavků na soubor klienta analýzou tohoto rozsahu. Když je odeslán breakpoint, požadovaná délka je kratší než délka souboru, takže je třeba nastavit správnou odpověď. PropertyLength64. Správně přeneste požadovaný obsah Příklad kódu:
|
Předchozí:httplistener naslouchá, aby získal parametry požadavku POSTDalší:18 filozofických komiksů, z nichž všichni jsou mistři
|