Saat pengujian curl menampilkan 000 sebagai status HTTP, curl belum memperoleh kode respons HTTP akhir untuk dilaporkan. Situs tidak mengirim status HTTP sungguhan bernama 000.

Catat juga kesalahannya

Contoh untuk shell POSIX ini mencetak kolom HTTP akhir, kolom CONNECT, dan kode keluar proses curl:

curl --proxy http://203.0.113.10:8080 --noproxy '' --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect}\n' https://example.com/
result=$?
printf 'curl_exit=%s\n' "$result"

Ganti endpoint contoh dengan proxy HTTP Anda atau kandidat dari daftar proxy HTTP. Biarkan show-error aktif: pesan kesalahan sering kali merupakan bagian yang paling berguna. Kolom CONNECT relevan saat terowongan digunakan; kolom itu bukan status akhir kedua dari situs.

Baca nilainya bersamaan

  • Koneksi ke proxy yang gagal dapat membuat kolom HTTP tetap 000.
  • Waktu tunggu habis sebelum respons diterima dapat menghasilkan hal yang sama.
  • Respons CONNECT yang berhasil lalu diikuti kegagalan TLS dapat menampilkan connect=200 dan http=000.
  • Respons situs yang lengkap, seperti 403, berbeda: ada respons HTTP sungguhan yang bisa diperiksa.

Kode keluar yang tepat dan pesannya mempersempit penyebab. Periksa apakah kegagalan terjadi saat mencari proxy, terhubung ke portnya, menegosiasikan terowongan, atau memverifikasi tujuan.

Jangan jadikan setiap hasil sekadar pemeriksaan status

Skrip yang hanya menyimpan http_code membuang kesalahan transportasi data. Simpan juga hasil proses dan pesan kesalahan yang sudah dibersihkan dari informasi sensitif. Sebaliknya, curl dapat menyelesaikan transfer dengan sukses meski situs mengembalikan status kesalahan, kecuali Anda memakai opsi fail yang sesuai. Respons HTTP dan hasil eksekusi klien menjawab pertanyaan yang berbeda.

Jangan mencoba memperbaiki 000 dengan menonaktifkan verifikasi TLS atau menambahkan header sembarang. Tentukan dulu operasi mana yang tidak pernah mencapai respons akhir.

Artikel terkait