Menu
Coddy logo textTech

Timeout e tentativi

Lezione 45 di 47 del corso Reti da terminale di Coddy.

Per impostazione predefinita, curl aspetta molto a lungo. In uno script è un bug: un host irraggiungibile e il processo resta bloccato finché qualcuno non se ne accorge.

curl -s --max-time 5 --connect-timeout 2 URL

--connect-timeout limita il tempo da dedicare alla connessione. --max-time limita l’intera operazione. Superare uno dei due limiti restituisce il codice di uscita 28.

Riprovare richiede più attenzione di quanto sembri. Ripetere una richiesta GET o PUT non comporta rischi, perché entrambe sono idempotenti. Ripetere una richiesta POST può creare un secondo record, e un timeout è il caso peggiore: non hai mai saputo se la prima richiesta è stata elaborata.

Quindi riprova liberamente le letture e pensaci bene prima di riprovare le scritture. Se devi farlo, chiedi al server un modo per renderlo sicuro, ad esempio una chiave di idempotenza.

challenge icon

Sfida

Medio

Imposta un limite di tempo per una richiesta a cui non verrà mai risposto.

Effettua una richiesta a http://10.255.255.1/, un indirizzo che inghiotte il traffico senza rispondere, interrompendola dopo 2 secondi, e stampa gave up: seguito dal codice di uscita di curl.

Output previsto:

gave up: 28

Senza un timeout, questa richiesta resterebbe in attesa per ben più di un minuto.

Provalo tu

Terminale
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Reti da terminale

Esercitati da solo: Playground Terminal