Reluarea descărcărilor prin Squid
Verifică răspunsurile Range și identitatea obiectului înainte de reluare și deosebește preluarea anticipată Squid de suportul de bază pentru intervale.
Reia doar când download.part aparține aceleiași reprezentări a obiectului pe care o vei cere acum. Numele fișierului singur nu confirmă asta: originea poate să fi schimbat conținutul de la prima încercare.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binÎnlocuiește ambele endpointuri cu servicii pe care ai dreptul să le folosești. Pentru o comparație de fișier public unde proxy-urile publice sunt permise, alege un endpoint HTTP din lista de proxy-uri HTTP. -C - folosește dimensiunea fișierului existent drept punct de reluare. Inspectează răspunsul destinației în loc să consideri orice corp primit drept octeții lipsă:
| Răspuns | Interpretare |
|---|---|
| 206 cu Content-Range | Verifică dacă intervalul returnat este continuarea așteptată. |
| 200 | Serverul poate să fi ignorat Range și să fi trimis reprezentarea completă. |
| 416 | Intervalul cerut nu poate fi satisfăcut; nu adăuga pagina de eroare la fișier. |
Validatorii și If-Range pot evita unirea versiunilor unei resurse care se schimbă. Urmează regulile de reprezentare ale aplicației înainte să ai încredere în fișierul final.
În Squid 6.13, range_offset_limit stabilește când un obiect este preluat de la început pentru cache, nu dacă un client poate cere un interval:
range_offset_limit 0Limita zero evită preluarea suplimentară a începutului doar pentru a umple cache-ul. Transmiterea unui interval util fără a pune obiectul în cache poate totuși reuși. Pentru HTTPS CONNECT obișnuit, schimbul Range este în interiorul TLS al destinației; citește acel răspuns în loc să tratezi politica vizibilă a cache-ului de obiecte Squid drept control asupra cererii interne.