Batas Waktu dan Percobaan Ulang
Pelajaran 45 dari 47 dalam kursus Jaringan dengan Terminal di Coddy.
Secara default, curl menunggu sangat lama. Dalam skrip, ini adalah bug: satu host yang tidak dapat dijangkau membuat tugasmu macet sampai seseorang menyadarinya.
curl -s --max-time 5 --connect-timeout 2 URL--connect-timeout membatasi waktu untuk membuat koneksi. --max-time membatasi keseluruhan operasi. Jika salah satunya terlampaui, kode keluar yang dihasilkan adalah 28.
Mengulangi permintaan perlu lebih banyak kehati-hatian daripada yang terlihat. Mengulangi GET atau PUT yang gagal aman, karena keduanya bersifat idempoten. Mengulangi POST dapat membuat catatan kedua, dan timeout adalah kasus terburuk untuknya: kamu tidak pernah tahu apakah permintaan pertama sudah diproses.
Jadi, ulangi permintaan baca dengan leluasa, dan pikirkan baik-baik sebelum mengulangi permintaan tulis. Jika memang harus, minta server menyediakan cara agar tindakan itu aman, seperti kunci idempotensi.
Tantangan
SedangBeri batas waktu pada permintaan yang tidak akan pernah dijawab.
Minta http://10.255.255.1/, alamat yang diam-diam menelan lalu lintas, lalu hentikan setelah 2 seconds dan cetak gave up: diikuti kode keluar curl.
Output yang diharapkan:
gave up: 28Tanpa batas waktu, permintaan ini akan terus menunggu selama lebih dari satu menit.
Coba sendiri
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Jaringan dengan Terminal
6Mendalami curl
Melihat HeaderMenyimpan ResponsHeader KustomStatus dan WaktuKode Keluar curlRangkuman: Flag curl9Autentikasi dan Debugging
Kunci API dan BearerUser AgentBatas Waktu dan Percobaan UlangMembaca KegagalanRingkasan: DebuggingLatihan sendiri: Playground Terminal