Squid-ээр таталтыг үргэлжлүүлэх
Үргэлжлүүлэхээс өмнө Range хариу ба объект ижил эсэхийг шалгаж, Squid-ийн урьдчилж авах бодлогыг үндсэн Range дэмжлэгээс ялга.
Зөвхөн 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 - байгаа файлын хэмжээг үргэлжлүүлэх цэг болгоно. Ирсэн бүх биеийг дутуу байт гэж үзэлгүй зорилтот талын хариуг шалга:
| Хариу | Тайлбар |
|---|---|
| Content-Range-тай 206 | Ирсэн муж хүлээсэн үргэлжлэл мөн эсэхийг шалга. |
| 200 | Сервер Range-ийг үл тоон бүтэн дүрслэлийг илгээсэн байж болно. |
| 416 | Хүссэн мужийг хангах боломжгүй; алдааны хуудсыг файлд бүү залга. |
Баталгаажуулагчид болон If-Range нь өөрчлөгдөж буй нөөцийн өөр хувилбаруудыг залгахаас зайлсхийхэд тусална. Дууссан файлд итгэхээс өмнө програмын дүрслэлийн дүрмийг дага.
Squid 6.13-ийн range_offset_limit нь клиент муж хүсэж болох эсэхийг бус, объект кэшлэхийн тулд хэзээ эхнээс нь авахыг удирдана:
range_offset_limit 0Тэг хязгаар зөвхөн кэш дүүргэхийн тулд эхний хэсгийг илүү татахаас сэргийлнэ. Объектыг кэшлэхгүйгээр хэрэгтэй муж дамжуулах нь ч амжилттай байж болно. Энгийн HTTPS CONNECT-д Range солилцоо зорилтот TLS дотор байдаг; тэр хариуг унш, Squid-ийн харагдах объектын кэш бодлогыг дотоод хүсэлтийг удирдана гэж бүү үз.