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 |
Default yang direkomendasikan: rotasi yang dapat dikontrol, tingkat blokir rendah pada multi-hop chain | |
Terbaik untuk login/geo-gated redirect yang memerlukan kepercayaan tingkat carrier | |
Static IP yang stabil untuk redirect chain yang memerlukan session persistence | |
Tercepat, tetapi terlemah terhadap redirect-based bot check |
Prosesnya: Gunakan cURL follow redirect command
Command dasar Anda adalah:
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.
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.
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.
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.
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.
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.
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:
Jalankan curl -L -v untuk memeriksa rantai dan mendeteksi loop.
Turunkan --max-redirs selama debugging.
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.