Genoptag downloads gennem Squid
Kontroller Range-svar og objektidentitet før genoptagelse, og skeln mellem Squids forhåndshentning og grundlæggende Range-understøttelse.
Brug kun genoptagelse, når download.part hører til samme objektrepræsentation, som du vil anmode om nu. Et filnavn alene beviser det ikke: oprindelsen kan have ændret indholdet siden første forsøg.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binErstat begge endepunkter med tjenester, du har lov til at bruge. Til sammenligning af en offentlig fil, hvor offentlige proxyer er tilladt, kan du vælge et HTTP-endepunkt fra listen over HTTP-proxyer. -C - bruger størrelsen på den eksisterende fil som genoptagelsespunkt. Undersøg destinationens svar i stedet for at behandle enhver modtaget svarkrop som de manglende bytes:
| Svar | Fortolkning |
|---|---|
| 206 med Content-Range | Kontroller, at det returnerede interval er den forventede fortsættelse. |
| 200 | Serveren kan have ignoreret Range og sendt hele repræsentationen. |
| 416 | Det ønskede interval kan ikke opfyldes; tilføj ikke fejlsiden til filen. |
Validatorer og If-Range kan hjælpe med at undgå at sammenføje forskellige versioner af en skiftende ressource. Følg programmets repræsentationsregler, før du stoler på den færdige fil.
I Squid 6.13 styrer range_offset_limit, hvornår et objekt hentes fra begyndelsen til caching, ikke om en klient må anmode om et interval:
range_offset_limit 0En nulgrænse undgår ekstra hentning af begyndelsen alene for at fylde cachen. Videresendelse af et nyttigt interval uden caching af objektet kan stadig lykkes. Ved almindelig HTTPS-CONNECT er Range-udvekslingen inde i destinationens TLS; læs det svar i stedet for at betragte Squids synlige objektcachepolitik som kontrol over den indre anmodning.