Wznawiaj tylko wtedy, gdy download.part należy do tej samej reprezentacji obiektu, o którą teraz poprosisz. Sama nazwa pliku tego nie potwierdza: serwer źródłowy mógł zmienić zawartość od pierwszej próby.

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

Zastąp oba punkty końcowe usługami, których wolno ci używać. Do porównania publicznego pliku tam, gdzie publiczne proxy są dozwolone, wybierz punkt HTTP z listy proxy HTTP. -C - używa rozmiaru istniejącego pliku jako punktu wznowienia. Zbadaj odpowiedź celu zamiast traktować dowolną otrzymaną treść jako brakujące bajty:

OdpowiedźZnaczenie
206 z Content-RangeSprawdź, czy zwrócony zakres jest oczekiwaną kontynuacją.
200Serwer mógł zignorować Range i wysłać całą reprezentację.
416Żądany zakres jest niemożliwy do spełnienia; nie dopisuj strony błędu do pliku.

Walidatory i If-Range mogą pomóc uniknąć łączenia wersji zmieniającego się zasobu. Przed zaufaniem ukończonemu plikowi stosuj reguły reprezentacji aplikacji.

W Squid 6.13 range_offset_limit określa, kiedy obiekt jest pobierany od początku do pamięci podręcznej, a nie czy klient może zażądać zakresu:

range_offset_limit 0

Limit zerowy zapobiega dodatkowemu pobieraniu początku tylko po to, by wypełnić cache. Przekazanie użytecznego zakresu bez zapisania obiektu w cache nadal może się udać. Przy zwykłym HTTPS CONNECT wymiana Range jest wewnątrz TLS celu; czytaj tę odpowiedź zamiast traktować widoczną politykę cache obiektów Squida jako sterowanie wewnętrznym żądaniem.

Powiązane artykuły