Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 19401|Svar: 2

[ASP.NET] ASP.NET använder HttpListener för att återuppta filbrytpunkter

[Kopiera länk]
Publicerad på 2019-11-27 10:42:41 | | |
Principen för brytpunktsfortsättning är mycket enkel, det vill säga att huvudet på HTTP-förfrågan och svarsmeddelandet skiljer sig från den normala nedladdningen.
När man begär ett dokument på en server på vanligt sätt är den begäran som görs och servern tas emot följande ut:
Begäran:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Svarsrubrik:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

När servern stöder återupptagning av brytpunkter är förfrågan och svaret följande:
Begäran:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360-
Svarsrubrik:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf

De olika delarna av de två meddelandena är markerade med röda sektioner. Den kan ses:
Range-headern används för att identifiera kundens önskade nedladdningsplats.
När serverns svarsnummer är 200 betyder det att nedladdningen startar från filhuvudet, och 206 betyder att överföringen startar från en specifik plats i filen.
Med andra ord, när du stödjer breakpoint-återupptagning kan du börja ladda ner från vilken del av filen som helst, medan det vanliga sättet bara kan ladda ner från filhuvudet.
För att servern ska kunna stödja återupptagande av breakpoint måste följande problem lösas:

1。 Om det är en återupptagningsbegäran behöver du hämta det filintervall som klienten kräver.
Som du kan se från analysen ovan, när klienten skickar en brytpunkt, läggs Range-fältet till pakethuvudet, och du kan avgöra om det är en brytpunktsöverföringsförfrågan enligt följande.
strängintervall = begäran. Rubriker["Range"];
bool isResume = sträng. IsNullOrEmpty(range);

2。 Svara korrekt till klienten för att meddela klientservern att endpointen stöds för fortsättning
När man skickar en förfrågan om en brytpunkt kan motsvarande nummer för klienten ställas in enligt följande:
svar. StatusCode = 206;

3。 Leverera rätt innehåll som kunden behöver
Att leverera det korrekta innehåll som kunden kräver innebär vanligtvis följande steg
Hämta klientens filförfrågningsintervall genom att analysera intervallet.
När en brytpunkt skickas är den nödvändiga längden kortare än filens längd, så rätt svar måste ställas in. ContentLength64-egenskap.
Överför det nödvändiga innehållet korrekt
Kodexempel:






Föregående:httplistener lyssnar för att hämta POST-förfråganens parametrar
Nästa:18 filosofiska serier, alla mästare
Publicerad på 2019-11-27 13:14:14 |
Mark
Publicerad på 2019-11-30 12:04:39 |
markerat      
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com