Pokračovanie sťahovania cez Squid
Pred pokračovaním overte odpovede Range a totožnosť objektu. Rozlišujte prednačítanie Squidu od základnej podpory rozsahov.
Pokračovanie použite iba vtedy, ak download.part patrí k rovnakej reprezentácii objektu, o ktorú teraz požiadate. Samotný názov súboru to nepotvrdzuje: zdroj mohol obsah od prvého pokusu zmeniť.
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, ktoré smiete používať. Na porovnanie verejného súboru tam, kde sú verejné proxy povolené, vyberte HTTP bod zo zoznamu HTTP proxy. -C - používa veľkosť existujúceho súboru ako bod pokračovania. Prezrite odpoveď cieľa, namiesto toho, aby ste každé vrátené telo považovali za chýbajúce bajty:
| Odpoveď | Výklad |
|---|---|
| 206 s Content-Range | Overte, že vrátený rozsah je očakávané pokračovanie. |
| 200 | Server mohol ignorovať Range a poslať celú reprezentáciu. |
| 416 | Požadovaný rozsah nemožno splniť; nepripájajte chybovú stránku k súboru. |
Validátory a If-Range pomáhajú zabrániť spájaniu verzií meniaceho sa zdroja. Skôr než hotovému súboru uveríte, dodržujte pravidlá reprezentácie aplikácie.
V Squid 6.13 riadi range_offset_limit, kedy sa objekt načíta od začiatku pre cachovanie, nie či klient smie požadovať rozsah:
range_offset_limit 0Nulový limit zabraňuje dodatočnému načítaniu začiatku len na naplnenie cache. Odoslanie užitočného rozsahu bez cachovania objektu môže stále uspieť. Pri bežnom HTTPS CONNECT je výmena Range vo vnútri TLS cieľa; čítajte odpoveď cieľa, namiesto toho, aby ste viditeľné pravidlá objektovej cache Squidu považovali za riadenie vnútorného požiadavku.