Cara mengikuti pengalihan HTTP dengan cURL

Ketika Anda perlu mendapatkan konten halaman yang sebenarnya, metode cURL follow redirect menjadi sangat berguna. Dengan menggunakan curl -L <URL> command, alih-alih curl <URL>biasa, Anda memastikan bahwa Anda mengunjungi halaman akhir dan mengambil data dari sini. Dalam kasus lain, website dapat mengarahkan Anda ke halaman khusus lokasi, atau halaman lain yang ditentukan. Di sini, Anda akan melihat cara menggunakannya dan cara men-debug masalah potensial.

Dikombinasikan dengan CyberYozh proxies, Anda mendapatkan toolset untuk mengambil konten dari halaman mana pun tanpa pembatasan atau redirect yang tidak diinginkan. 

ℹ️

cURL sangat berguna ketika Anda perlu melakukan HTTP request dengan cepat dan otomatis. Baca cara autentikasi website menggunakan cURL untuk informasi lebih lanjut.

Tools: Proxy mana yang dipilih

Redirect chain sering melewati geo-specific atau CDN endpoint, sehingga proxy di balik cURL request Anda menentukan apakah Anda mendarat di halaman akhir yang benar atau diblokir di tengah chain. 

Residential rotating proxies harus menjadi pilihan default Anda: rotasi IP mereka mudah dikontrol per request atau per session, yang sangat penting untuk web scraping dan data collection workflow di mana setiap redirect hop memerlukan IP yang bersih dan terpercaya.

Jenis proxy

Penggunaan untuk tugas redirect-heavy

Residential rotating proxies

Default yang direkomendasikan: rotasi yang dapat dikontrol, tingkat blokir rendah pada multi-hop chain

Mobile LTE/5G proxies

Terbaik untuk login/geo-gated redirect yang memerlukan kepercayaan tingkat carrier

Residential ISP proxies

Static IP yang stabil untuk redirect chain yang memerlukan session persistence

Datacenter proxies

Tercepat, tetapi terlemah terhadap redirect-based bot check

Prosesnya: Gunakan cURL follow redirect​ command

Command dasar Anda adalah:

bash
curl -L <URL>

Ini menetapkan target URL sebagai tujuan akhir, yang harus dicapai meskipun website mengarahkan Anda ke URL lain, seperti halaman khusus lokasi. Untuk menggunakan dengan proxy, Anda perlu memodifikasinya sedikit, menambahkan -x (atau --proxy) command dengan protokol (HTTP atau SOCKS5; baca lebih lanjut tentang pemilihan protokol proxy) dan kredensial proxy.

bash
curl -L -x <protocol://user:password@IP:port> <URL>
⚙️

Dengan rotating proxies, Anda mendapatkan gateway dengan kredensial yang dapat diakses di dashboard Anda: cukup tempatkan di perintah Anda, dan atur rotasi di sana.

Gunakan redirect dasar dengan curl -L

Tambahkan -L ke permintaan cURL mana pun agar secara otomatis mengikuti setiap header 3xx Location hingga mencapai respons akhir.

bash
curl -L <URL>

Tanpa -L, cURL berhenti pada redirect pertama dan hanya mengembalikan respons perantara.

Gunakan --max-redirs untuk menetapkan batas

Batasi jumlah lompatan yang akan diikuti cURL untuk mencegahnya tergantung pada loop atau rantai berlebihan.

bash
curl -L --max-redirs 5 <URL>

Tetapkan rendah (2–5) untuk rantai yang Anda harapkan pendek, dan lebih tinggi hanya untuk alur multi-langkah yang diketahui seperti login atau routing CDN.

⚙️

Menghormati rate limit dan robots.txt situs web sangat penting. Baca tentang ethical web scraping untuk mengetahui lebih lanjut.

Gunakan curl -L -v untuk melihat urutan pengalihan

Tambahkan -v (verbose) untuk mencetak setiap header permintaan dan respons, termasuk setiap lompatan Location dalam rantai.

bash
curl -L -v <URL>

Gunakan ini ketika rantai redirect berperilaku tidak terduga, dan Anda perlu mengidentifikasi dengan tepat di mana ia menyimpang.

Gunakan curl -L -I untuk memeriksa halaman redirect

Gabungkan -I (headers-only) dengan -L untuk melacak rantai redirect lengkap tanpa mengunduh badan halaman.

bash
curl -L -I <URL>

Ini adalah cara tercepat untuk mengonfirmasi URL tujuan akhir dan kode status sebelum menjalankan scrape penuh.

Gunakan curl -A untuk mengirim user-agent kustom

Tetapkan string user-agent yang realistis agar logika redirect yang terikat pada deteksi perangkat atau browser dapat diselesaikan dengan benar.

bash
curl -L -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" <URL>
📡

Baca bagaimana menerapkan user-agent acak membantu Anda melindungi pipeline scraping dan menghindari pembatasan.

Debug: Mengatasi masalah umum

Jika Anda menghadapi masalah apa pun, jangan khawatir. Sebagian besar mudah diperbaiki. Di sini, kami akan mengeksplorasi masalah yang paling umum dan cara mengatasinya.

HTTP 302 dan kode respons lainnya

Dengan redirect cURL, Anda sering menghadapi kode HTTP 3xx, masing-masing membawa aturan berbeda tentang apakah metode dan body dipertahankan. Di situlah Anda perlu beralih antara menggunakan metode GET dan POST

ℹ️

Keduanya dapat dengan mudah digunakan dengan fungsi curl dengan menentukannya sebelum URL. GET digunakan secara default dengan sebagian besar opsi, untuk menggunakan POST, Anda perlu secara eksplisit menulis POST sebelum URL.

301 Moved Permanently

Resource memiliki URL permanen baru; beberapa klien mengubah POST menjadi GET saat mengikuti. Gunakan -L secara normal; perlakukan URL baru sebagai kanonikal untuk permintaan di masa mendatang.

302 Found

Redirect sementara lawas; perilaku pada pelestarian metode tidak konsisten di berbagai klien, sehingga cURL dapat mengonversi POST menjadi GET. Ini adalah masalah yang paling sering terjadi. Jika Anda memerlukan metode asli dipertahankan, uji dengan --post302 secara eksplisit.

303 See Other

Selalu mengarahkan ke permintaan GET, biasanya setelah pengiriman formulir atau tindakan API selesai. Harapkan data body akan dihapus; jangan hanya mengandalkan -L jika Anda memerlukan payload asli dikirim ulang.

307 Temporary Redirect

Mempertahankan metode dan body asli, sehingga POST tetap POST. Aman untuk diikuti dengan -L saat scraping endpoint API yang redirect setelah pengiriman.

308 Permanent Redirect

Sama seperti 301 tetapi menjamin metode tidak diubah. Perlakukan sebagai ekuivalen modern yang aman-metode dari perpindahan permanen.

cURL tidak mengikuti redirect

Jika curl -L tampaknya tidak berpengaruh, situs kemungkinan menggunakan redirect JavaScript atau meta-refresh, yang tidak dapat dilihat cURL karena hanya membaca header HTTP. 

Konfirmasi dengan curl -L -I terlebih dahulu. Jika statusnya tetap 200, logika redirect berada di sisi klien dan memerlukan headless browser sebagai gantinya.

⚙️

Jelajahi panduan Playwright dan Puppeteer untuk informasi lebih lanjut tentang otomasi web dan scraping tingkat lanjut.

Error cURL 47 maximum redirects followed

Error ini berarti cURL mencapai batas --max-redirs (default-nya tinggi, tetapi loop memicunya dengan cepat). Solusi:

  1. Jalankan curl -L -v untuk memeriksa rantai dan mendeteksi loop.

  2. Turunkan --max-redirs selama debugging.

  3. Beralih ke IP proxy residential rotating yang bersih. Banyak redirect loop dipicu oleh IP datacenter yang masuk daftar hitam atau digunakan kembali yang dipantulkan oleh sistem anti-bot.

Kesimpulan: Gunakan cURL follow redirect

Perintah cURL redirect memungkinkan Anda mencapai halaman final yang sebenarnya alih-alih terhenti di hop perantara, menggunakan -L untuk mengikuti dan --max-redirs untuk tetap aman dari loop. Dipasangkan dengan proxy residential atau mobile CyberYozh, Anda mendapatkan akses konsisten dan tanpa pemblokiran ke situs dengan banyak redirect dalam skala besar.

Periksa katalog proxy sekarang untuk memulai.

FAQ tentang cURL follow redirect

Bagaimana cara membuat cURL mengikuti redirect?

Tambahkan flag -L (atau --location) ke perintah Anda. cURL kemudian akan membaca setiap header Location dan meminta URL berikutnya secara otomatis hingga mencapai halaman final.

Mengapa curl -L tidak berfungsi di beberapa situs?

Redirect mungkin berbasis JavaScript atau meta-refresh, bukan respons HTTP 3xx, yang tidak dapat dideteksi oleh cURL karena hanya memproses header.

Berapa banyak redirect yang diikuti cURL secara default?

cURL mengikuti jumlah hop default yang tinggi, tetapi ini dapat diubah dengan --max-redirs, yang juga melindungi dari infinite loop.

Apa arti "curl: (47) maximum redirects followed"?

Ini berarti cURL mencapai batas redirectnya, biasanya karena loop atau situs yang berulang kali memantulkan permintaan, sering kali dipicu oleh IP yang ditandai.

Bagaimana cara menggunakan cURL dengan proxy dan mengikuti redirect secara bersamaan?

Gabungkan -L dengan -x protocol://user:password@IP:port; cURL akan merutekan setiap hop dari rantai redirect melalui proxy tersebut.

Apakah cURL mengikuti redirect 302 secara otomatis?

Hanya dengan -L diaktifkan; tanpanya, cURL berhenti pada respons 302 pertama dan tidak meminta URL baru.

Bagaimana cara menghentikan cURL dari mengikuti redirect?

Cukup hilangkan -L, atau atur --max-redirs 0 jika Anda ingin memastikan flag tidak secara tidak sengaja diatur di tempat lain.

Apakah redirect mengubah permintaan saya dari POST ke GET?

Tergantung pada kode status: 301/302 mungkin beralih ke GET pada beberapa klien, sementara 307/308 selalu mempertahankan metode dan body asli.

Bagaimana cara melihat rantai redirect lengkap tanpa mengambil body halaman?

Gunakan curl -L -I untuk mencetak hanya header dan kode status untuk setiap hop, mengungkapkan tujuan akhir dengan cepat.

Jenis proxy mana yang paling cocok untuk scraping dengan banyak redirect?

Residential rotating proxies direkomendasikan secara default karena menggabungkan rotasi IP yang dapat dikontrol dengan tingkat penerimaan tinggi pada pemeriksaan redirect dan anti-bot.