Аднаўляйце загрузку толькі калі download.part належыць да таго самага прадстаўлення аб’екта, якое вы зараз запытаеце. Аднаго імя файла недастаткова: крыніца магла змяніць змест пасля першай спробы.

curl --proxy http://proxy.example:3128 --noproxy '' --connect-timeout 5 --max-time 60 -C - --output download.part http://files.example/test.bin

Замяніце абодва канцавыя пункты сэрвісамі, якімі вам дазволена карыстацца. Для параўнання агульнадаступнага файла там, дзе публічныя проксі дазволеныя, вазьміце HTTP-вузел са спіса HTTP-проксі. -C - выкарыстоўвае памер наяўнага файла як пункт працягу. Вывучыце адказ мэты, а не лічыце любое атрыманае цела адсутнымі байтамі:

АдказЗначэнне
206 з Content-RangeПраверце, што вернуты дыяпазон — чаканы працяг.
200Сервер мог праігнараваць Range і даслаць поўнае прадстаўленне.
416Запытаны дыяпазон немагчыма задаволіць; не дапісвайце старонку памылкі ў файл.

Валідатары і If-Range дапамагаюць пазбегнуць склейвання розных версій зменлівага рэсурсу. Выконвайце правілы прадстаўлення праграмы, перш чым давяраць гатоваму файлу.

У Squid 6.13 range_offset_limit вызначае, калі аб’ект загружаецца з пачатку для кэшавання, а не ці можа кліент запытаць дыяпазон:

range_offset_limit 0

Нулявая мяжа выключае лішнюю загрузку пачатку толькі дзеля запаўнення кэша. Перадача карыснага дыяпазону без кэшавання аб’екта ўсё роўна можа быць паспяховай. Пры звычайным HTTPS CONNECT абмен Range знаходзіцца ўнутры TLS мэты; чытайце гэты адказ, а не ўспрымайце бачную палітыку аб’ектнага кэша Squid як кіраванне ўнутраным запытам.

Падобныя артыкулы