Usa la ripresa solo quando download.part appartiene alla stessa rappresentazione dell’oggetto che richiederai ora. Il nome del file non basta: l’origine potrebbe aver cambiato il contenuto dal primo tentativo.

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

Sostituisci entrambi gli endpoint con servizi che sei autorizzato a usare. Per un confronto su un file pubblico dove i proxy pubblici sono consentiti, scegli un endpoint HTTP dalla lista di proxy HTTP. -C - usa la dimensione del file esistente come punto di ripresa. Esamina la risposta della destinazione invece di considerare qualsiasi corpo ricevuto come i byte mancanti:

RispostaInterpretazione
206 con Content-RangeControlla che l’intervallo restituito sia la continuazione attesa.
200Il server potrebbe aver ignorato Range e inviato la rappresentazione completa.
416L’intervallo richiesto non è soddisfacibile; non aggiungere al file la pagina di errore.

I validatori e If-Range possono evitare di unire versioni di una risorsa che cambia. Segui le regole di rappresentazione dell’applicazione prima di fidarti del file completato.

In Squid 6.13, range_offset_limit regola quando recuperare un oggetto dall’inizio per memorizzarlo in cache, non se il client possa chiedere un intervallo:

range_offset_limit 0

Un limite zero evita di recuperare un prefisso aggiuntivo solo per riempire la cache. Inoltrare un intervallo utile senza memorizzare l’oggetto può comunque riuscire. Con un normale CONNECT HTTPS, lo scambio Range è dentro il TLS della destinazione: leggi quella risposta invece di trattare la politica visibile della cache oggetti di Squid come controllo della richiesta interna.

Articoli correlati