Masalah
Browser sering menyembunyikan detail redirect atau hanya menampilkan halaman error. Saat troubleshooting, kita perlu mengetahui status yang benar-benar dikirim server atau edge.
Gunakan curl untuk membedakan respons sukses, redirect, halaman tidak ditemukan, dan error server tanpa bergantung pada browser.
Mengenali arti status HTTP umum dan mengumpulkan bukti status, header, serta URL akhir dengan curl.
PersiapanTerminal dengan curl dan URL yang boleh Anda uji. Contoh di artikel ini adalah panduan latihan; status aktual dapat berbeda.
Browser sering menyembunyikan detail redirect atau hanya menampilkan halaman error. Saat troubleshooting, kita perlu mengetahui status yang benar-benar dikirim server atau edge.
Mulai dengan URL lab atau website yang Anda kelola. Hindari mengirim request berulang dalam jumlah besar ke layanan yang bukan milik Anda.
Opsi -sS mengurangi output, -o /dev/null membuang body, dan -w menampilkan status HTTP yang diterima.
curl -sS -o /dev/null -w 'status=%{http_code}\n' https://example.comGunakan -I untuk melihat header respons. Untuk 301 atau 302, perhatikan header Location yang menunjukkan tujuan redirect.
curl --connect-timeout 5 --max-time 15 -I https://example.comTambahkan -L jika Anda ingin mengikuti redirect sampai URL akhir. Batasi jumlah redirect agar loop lebih mudah dikenali.
curl --max-redirs 5 -L -o /dev/null -sS -w 'akhir=%{url_effective}\nstatus=%{http_code}\n' http://example.com200 berarti request berhasil diproses. 301 adalah redirect permanen, sedangkan 302 adalah redirect sementara menurut semantik HTTP. 404 berarti resource target tidak ditemukan. 500 menunjukkan server mengalami kondisi tak terduga saat memproses request.
Bandingkan hasil tanpa -L dan dengan -L. Jika browser sukses tetapi curl menerima status berbeda, periksa perbedaan hostname, cookie, User-Agent, autentikasi, atau jalur redirect sebelum menyimpulkan penyebab.
Saat -L digunakan, status yang dicetak biasanya adalah respons terakhir. Untuk troubleshooting, simpan juga header setiap hop agar 301/302 di tengah chain tidak hilang dari analisis. URL akhir yang benar tetapi melewati redirect tak perlu tetap dapat menambah latency atau memicu masalah cookie dan method.
Jangan menganggap 301 dan 302 selalu aman dipertukarkan untuk semua method; perilaku redirect dapat memengaruhi request non-GET. Jangan menilai keberhasilan hanya dari status akhir, dan jangan memakai --fail sebagai satu-satunya alat diagnosis karena opsi itu sengaja mengubah exit behavior pada HTTP error.
Catat URL awal, status setiap hop, Location, URL efektif, Content-Type, dan bila perlu potongan body yang aman. Jika browser dan curl berbeda, bandingkan cookie, autentikasi, User-Agent, method, proxy, dan hostname yang benar-benar dipakai.
Status HTTP adalah bukti dari satu tahap request. Status 200 belum menjamin isi halaman benar, sedangkan 4xx/5xx belum menjelaskan akar masalah tanpa melihat header, body, log, dan konteks aplikasi.