|
|
Yayınlandı 27.11.2019 10:42:41
|
|
|

Breakpoint devamının prensibi çok basittir; yani HTTP isteği ve yanıt mesajının başlığı normal indirmeden farklıdır. Bir sunucuda normal şekilde bir belge talep edilirken, yapılan talep ve alınan sunucu aşağıdaki gibidir:
İstek Başlığı:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost Yanıt başlığı:
200
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf Sunucu breakpoint yeniden başlatmayı desteklediğinde, istek ve yanıt aşağıdaki gibidir:
İstek Başlığı:
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Accept: */*
Host: localhost
Range: bytes=15360- Yanıt başlığı:
206
Content-Type: application/octet-stream
Content-Disposition: attachment;FileName=time.pdf İki mesajın farklı kısımları kırmızı bölümlerle işaretlenmiştir. Şunlar görülebilir: Aralık başlığı, müşterinin istediği indirme konumunu belirlemek için kullanılır. Sunucunun cevap numarası 200 ise, indirmenin dosya başlığından başladığı anlamına gelir ve 206 ise transferin dosyanın belirli bir konumundan başladığı anlamına gelir. Yani, breakpoint yeniden başlatmayı desteklerken, dosyanın herhangi bir bölümünden indirmeye başlayabilirsiniz, oysa normal yöntem sadece dosya başlığından indirebilir. Sunucunun breakpoint yeniden başlatmayı desteklemesi için aşağıdaki sorunların çözülmesi gerekir:
1。 Eğer bu bir devam talebiyse, istemcinin ihtiyaç duyduğu dosya aralığını almanız gerekir. Yukarıdaki analizden görebileceğiniz gibi, istemci bir kesme noktası iletirken, Aralık alanı paket başlığına eklenir ve bunun bir kesme noktası iletim talebi olup olmadığını aşağıdaki gibi belirleyebilirsiniz. Dizi aralığı = istek. Başlıklar["Range"]; bool isResume = dize. IsNullOrEmpty(menzil);
2。 İstemciye doğru yanıt vererek istemci sunucusuna uç noktanın devamını desteklediğini bildirin Bir kesme noktası için bir talep gönderilirken, istemci için karşılık gelen sayı şu şekilde ayarlanabilir: Yanıt. Durum Kodu = 206;
3。 Müşterinin ihtiyaç duyduğu doğru içeriği sunmak Müşterinin ihtiyaç duyduğu doğru içeriği sunmak genellikle aşağıdaki adımları içerir İstemcinin dosya isteği aralığını analiz ederek elde edin. Bir kesme noktası gönderildiğinde, gerekli uzunluk dosyanın uzunluğundan daha kısadır, bu yüzden doğru yanıt ayarlanmalıdır. ContentLength64 mülkiyeti. Gerekli içeriği doğru şekilde aktarın Kod örneği:
|
Önceki:httplistener, POST isteği parametrelerini almak için dinlerÖnümüzdeki:18 felsefi çizgi roman, hepsi ustadır
|