Lejupielāžu atsākšana caur Squid
Pirms atsākšanas pārbaudiet Range atbildes un objekta identitāti. Atšķiriet Squid iepriekšielādi no pamata diapazonu atbalsta.
Atsākšanu izmantojiet tikai tad, ja download.part pieder tai pašai objekta reprezentācijai, ko pieprasīsiet tagad. Faila nosaukums vien to neapstiprina: sākotnējais serveris kopš pirmā mēģinājuma var būt mainījis saturu.
curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.binAizstājiet abus galapunktus ar pakalpojumiem, ko drīkstat izmantot. Publiska faila salīdzināšanai, kur publiski starpniekserveri ir atļauti, izvēlieties HTTP punktu no HTTP starpniekserveru saraksta. -C - izmanto esošā faila lielumu kā atsākšanas vietu. Pārbaudiet galamērķa atbildi, nevis uzskatiet jebkuru saņemtu saturu par trūkstošajiem baitiem:
| Atbilde | Nozīme |
|---|---|
| 206 ar Content-Range | Pārbaudiet, vai atgrieztais diapazons ir paredzētais turpinājums. |
| 200 | Serveris var būt ignorējis Range un nosūtījis pilnu reprezentāciju. |
| 416 | Pieprasīto diapazonu nevar izpildīt; nepievienojiet kļūdas lapu failam. |
Validatori un If-Range var palīdzēt izvairīties no mainīga resursa versiju salīmēšanas. Pirms uzticaties gatavajam failam, ievērojiet lietotnes reprezentācijas noteikumus.
Squid 6.13 range_offset_limit nosaka, kad objekts kešošanai tiek iegūts no sākuma, nevis vai klients drīkst pieprasīt diapazonu:
range_offset_limit 0Nulles robeža novērš papildu sākumdaļas iegūšanu tikai keša aizpildīšanai. Noderīga diapazona pārsūtīšana bez objekta kešošanas joprojām var būt veiksmīga. Parastā HTTPS CONNECT gadījumā Range apmaiņa atrodas galamērķa TLS iekšienē; lasiet šo atbildi, nevis uzskatiet redzamo Squid objektu keša politiku par iekšējā pieprasījuma vadību.