Pokračování stahování přes Squid
Před pokračováním ověřte odpovědi Range a totožnost objektu. Rozlišujte přednačítání Squidu od základní podpory rozsahů.
Pokračování použijte pouze tehdy, pokud download.part patří ke stejné reprezentaci objektu, o kterou nyní požádáte. Samotný název souboru to nepotvrzuje: zdroj mohl obsah od prvního pokusu změnit.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binNahraďte oba koncové body službami, které smíte používat. Pro porovnání veřejného souboru tam, kde jsou veřejné proxy povoleny, vyberte HTTP bod ze seznamu HTTP proxy. -C - používá velikost existujícího souboru jako bod pokračování. Prohlédněte odpověď cíle, místo abyste každé vrácené tělo pokládali za chybějící bajty:
| Odpověď | Výklad |
|---|---|
| 206 s Content-Range | Ověřte, že vrácený rozsah je očekávané pokračování. |
| 200 | Server mohl ignorovat Range a poslat celou reprezentaci. |
| 416 | Požadovaný rozsah nelze splnit; nepřipojujte chybovou stránku k souboru. |
Validátory a If-Range pomáhají zabránit spojování verzí měnícího se zdroje. Než hotovému souboru uvěříte, dodržujte pravidla reprezentace aplikace.
Ve Squid 6.13 řídí range_offset_limit, kdy se objekt načte od začátku kvůli cachování, nikoli zda klient smí požadovat rozsah:
range_offset_limit 0Nulový limit zabraňuje dodatečnému načítání začátku jen pro naplnění cache. Předání užitečného rozsahu bez cachování objektu může stále uspět. U běžného HTTPS CONNECT je výměna Range uvnitř TLS cíle; čtěte odpověď cíle, místo abyste viditelná pravidla objektové cache Squidu pokládali za řízení vnitřního požadavku.