Squid üzerinden indirmelere devam etme
Devam etmeden önce Range yanıtlarını ve nesne kimliğini kontrol edin; Squid’in önceden getirme politikasını temel Range desteğinden ayırın.
Yalnızca download.part şimdi isteyeceğiniz nesnenin aynı gösterimine aitse devam etmeyi kullanın. Dosya adı tek başına bunu belirlemez; kaynak ilk denemeden beri içeriği değiştirmiş olabilir.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binİki uç noktayı da kullanmaya yetkili olduğunuz hizmetlerle değiştirin. Genel proxy kullanımına izin verilen bir genel dosya karşılaştırması için HTTP proxy listesinden HTTP uç noktası seçin. -C - var olan dosya boyutunu devam noktası olarak kullanır. Dönen her gövdeyi eksik baytlar saymak yerine hedef yanıtını inceleyin:
| Yanıt | Yorum |
|---|---|
| Content-Range ile 206 | Dönen aralığın beklenen devam olduğunu kontrol edin. |
| 200 | Sunucu Range’i yok sayıp gösterimin tamamını göndermiş olabilir. |
| 416 | İstenen aralık karşılanamıyor; hata sayfasını dosyaya eklemeyin. |
Doğrulayıcılar ve If-Range değişen bir kaynağın farklı sürümlerini birleştirmeyi önlemeye yardımcı olabilir. Tamamlanan dosyaya güvenmeden önce uygulamanın gösterim kurallarına uyun.
Squid 6.13’te range_offset_limit istemcinin aralık isteyip isteyemeyeceğini değil, önbellek için nesnenin ne zaman baştan alınacağını yönetir:
range_offset_limit 0Sıfır sınırı yalnızca önbelleği doldurmak için ek başlangıç verisi alınmasını önler. Nesneyi önbelleğe koymadan yararlı aralığı iletmek yine de başarılı olabilir. Normal HTTPS CONNECT’te Range alışverişi hedef TLS’in içindedir; Squid’in görünen nesne önbellek politikasını iç isteğin denetimi saymak yerine hedef yanıtını okuyun.