Återuppta nedladdningar genom Squid
Kontrollera Range-svar och objektidentitet före återupptagning, och skilj Squids förhämtning från grundläggande Range-stöd.
Använd återupptagning bara när download.part tillhör samma objektrepresentation som du ska begära nu. Ett filnamn räcker inte för att fastställa det: ursprunget kan ha ändrat innehållet sedan första försöket.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binByt ut båda slutpunkterna mot tjänster som du har rätt att använda. För en jämförelse av en offentlig fil där offentliga proxyer är tillåtna, välj en HTTP-slutpunkt från listan över HTTP-proxyer. -C - använder den befintliga filens storlek som fortsättningspunkt. Granska målets svar i stället för att betrakta vilken svarskropp som helst som de saknade byten:
| Svar | Tolkning |
|---|---|
| 206 med Content-Range | Kontrollera att det returnerade intervallet är den förväntade fortsättningen. |
| 200 | Servern kan ha ignorerat Range och skickat hela representationen. |
| 416 | Det begärda intervallet kan inte uppfyllas; lägg inte till felsidan i filen. |
Validatorer och If-Range kan hjälpa till att undvika att sammanfoga olika versioner av en föränderlig resurs. Följ programmets representationsregler innan du litar på den färdiga filen.
I Squid 6.13 styr range_offset_limit när ett objekt hämtas från början för cachning, inte om en klient får begära ett intervall:
range_offset_limit 0En nollgräns undviker extra hämtning av början enbart för att fylla cachen. Att vidarebefordra ett användbart intervall utan att cacha objektet kan ändå lyckas. Vid vanlig HTTPS-CONNECT ligger Range-utbytet inuti målets TLS; läs det svaret i stället för att behandla Squids synliga objektcachepolicy som kontroll över den inre begäran.