ჩამოტვირთვების გაგრძელება Squid-ის გავლით
გაგრძელებამდე შეამოწმეთ Range პასუხები და ობიექტის იგივეობა. განასხვავეთ Squid-ის წინასწარი მიღების პოლიტიკა Range-ის ძირითადი მხარდაჭერისგან.
გაგრძელება მხოლოდ მაშინ გამოიყენეთ, თუ download.part იმავე ობიექტის წარმოდგენას ეკუთვნის, რომელსაც ახლა მოითხოვთ. მხოლოდ ფაილის სახელი ამას ვერ ადასტურებს: წყაროს პირველი მცდელობის შემდეგ შიგთავსი შეიძლება შეეცვალა.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binორივე ბოლო წერტილი შეცვალეთ სერვისებით, რომელთა გამოყენების უფლებაც გაქვთ. საჯარო ფაილის შედარებისთვის, სადაც საჯარო პროქსი ნებადართულია, აირჩიეთ HTTP წერტილი HTTP პროქსების სიიდან. -C - არსებული ფაილის ზომას გაგრძელების ადგილად იყენებს. შეამოწმეთ დანიშნულების პასუხი და არა ნებისმიერი მიღებული სხეული ჩათვალოთ ნაკლულ ბაიტებად:
| პასუხი | მნიშვნელობა |
|---|---|
| 206 Content-Range-ით | შეამოწმეთ, რომ დაბრუნებული დიაპაზონი მოსალოდნელი გაგრძელებაა. |
| 200 | სერვერს შეიძლება Range უგულებელეყო და სრული წარმოდგენა გამოეგზავნა. |
| 416 | მოთხოვნილი დიაპაზონი ვერ დაკმაყოფილდება; შეცდომის გვერდი ფაილს არ მიამატოთ. |
ვალიდატორები და If-Range დაგეხმარებათ ცვალებადი რესურსის სხვადასხვა ვერსიის გადაბმის თავიდან აცილებაში. დასრულებულ ფაილს ნდობამდე დაიცავით აპის წარმოდგენის წესები.
Squid 6.13-ის range_offset_limit მართავს, როდის იღებს ობიექტს თავიდან ქეშირებისთვის და არა იმას, შეუძლია თუ არა კლიენტს დიაპაზონის მოთხოვნა:
range_offset_limit 0ნულოვანი ზღვარი თავიდან აცილებს დამატებითი საწყისი ნაწილის მიღებას მხოლოდ ქეშის შესავსებად. სასარგებლო დიაპაზონის გადაცემა ობიექტის ქეშირების გარეშეც შეიძლება წარმატებული იყოს. ჩვეულებრივ HTTPS CONNECT-ში Range გაცვლა დანიშნულების TLS-ის შიგნითაა; ეს პასუხი წაიკითხეთ და Squid-ის ხილული ობიექტების ქეშის პოლიტიკა შიდა მოთხოვნის კონტროლად არ ჩათვალოთ.