In this Article
Baik Anda melakukan web scraping maupun menggunakan API, semuanya tentang mengirim request HTTP dan menerima respons. Semakin terperinci request Anda, semakin presisi data yang diperoleh. Itulah sebabnya Anda memerlukan header. Header berupa pasangan kunci-nilai yang dipisahkan oleh titik dua dan merupakan bagian dari respons HTTP yang memuat detail tambahan, seperti tipe konten atau instruksi caching. Header membantu Anda mendapatkan detail yang diperlukan atau memfilter respons agar Anda tidak pernah melihat respons yang tidak relevan. Dalam artikel ini, kita akan mempelajari dasar-dasar praktis pengiriman header HTTP dengan cURL dan bagaimana hal itu dapat membantu tugas Anda.
Mengapa cURL?
Setelah mengetahui apa itu header HTTP, mari kita membahas cURL secara singkat. cURL adalah alat command-line yang mudah digunakan untuk mentransfer data ke server target dan kembali ke komputer Anda, sehingga sangat cocok untuk mengirim header. Keunggulannya meliputi:
- Ringan
- Mendukung banyak protokol, termasuk HTTP(S), SMTP, FTP, dan lainnya
- Tidak memerlukan library tambahan
- Kompatibel dengan sistem operasi yang paling banyak digunakan, seperti Windows, Linux, dan macOS
- Gratis digunakan dan sering kali sudah terpasang
- Memiliki dokumentasi terperinci dan komunitas pengguna yang sangat besar, sehingga Anda dapat segera menemukan solusi saat menghadapi kesulitan.
Karena itulah cURL digunakan secara luas, bahkan ketika terdapat banyak alat lain yang dapat mengirim header HTTP.
Kapan mengirim header HTTP
Setelah memahami semua alatnya, mari kita telaah kasus penggunaan untuk mengirim header HTTP.
- Autentikasi dan otorisasi
Saat Anda memanggil API atau meminta konten yang memerlukan otorisasi, Anda mungkin perlu memberikan token atau kredensial lain untuk mendapatkan data. Mengirim header Authorization dengan cURL akan memberikan informasi yang diperlukan agar server dapat mengizinkan akses Anda. Anda perlu menggunakan opsi -H dalam request. Di bawah ini, Anda dapat melihat contoh request cURL ke httpbin.org, yaitu layanan khusus untuk request dan respons.
- Negosiasi konten
Saat Anda mengirim konten dalam format tertentu seperti JSON atau XML dan memerlukan server untuk menafsirkannya dengan benar, Anda perlu menyertakan header HTTP Content-type dalam request. Server target akan mengetahui cara memproses konten untuk meminimalkan kemungkinan kesalahan atau penundaan.
- CORS (berbagi resource lintas origin)
Aplikasi dapat memberikan akses ke layanan atau data berdasarkan pihak yang berupaya memperolehnya. Dalam situasi seperti ini, ketika origin suatu request berperan penting, Anda dapat menentukan origin dalam header HTTP Origin. Jangan menyamakannya dengan autentikasi. Kasus penggunaannya serupa dan sering kali digunakan bersamaan, tetapi keduanya berbeda.
- Menentukan user agent
Jenis client, baik aplikasi mobile maupun web, API, dan sebagainya, juga memengaruhi respons yang Anda terima. Anda dapat menentukan jenis client dalam request dan memperoleh respons yang diperlukan.
- Menyesuaikan pengaturan cache control
Mengelola pengaturan cache sangat penting dalam banyak situasi, dan header HTTP dapat membantu Anda melakukannya. Anda hanya perlu menyertakan header Cache-control dalam request dan menentukan nilainya. Respons akan di-cache sesuai pengaturan yang Anda tentukan.
- Mengirim request kustom
Terkadang, aplikasi yang Anda gunakan memerlukan header kustom untuk memproses request atau menjalankan tindakan yang Anda inginkan. Dalam hal ini, menyertakan header tersebut dalam request Anda diperlukan. Terkadang, header seperti itu dibutuhkan untuk melindungi dari kerentanan dan serangan. Sebelum menggunakan aplikasi, sebaiknya baca dokumentasinya untuk mengetahui header kustom apa yang tersedia dan diperlukan.
- Mengirim request bersyarat
Anda sebaiknya menggunakan header bersyarat jika hanya memerlukan data tertentu yang memenuhi kondisi spesifik. Header tersebut menghemat waktu karena hanya mengambil data yang dibutuhkan serta menghemat bandwidth karena Anda tidak membuang GB untuk memuat informasi yang tidak perlu. If-Match atau If-Modified-Since adalah contoh header tersebut.
cURL: fitur lainnya
- Cara mengirim beberapa header
Terkadang, Anda mungkin perlu mengirim beberapa header terkait request yang sama. Jika ini terjadi, Anda dapat mencantumkan semuanya menggunakan perintah cURL yang sama. Ingat untuk menggunakan opsi –H setiap kali memasukkan pasangan kunci-nilai baru.
- Cara memeriksa header respons
Melihat header respons dari server target berguna untuk troubleshooting dan pemantauan performa. Header tersebut memberikan informasi tentang lamanya pemrosesan request Anda atau ada tidaknya masalah autentikasi. Anda dapat melihatnya menggunakan opsi -I atau –head. Keduanya hanya akan menampilkan header.
Jika ingin melihat header dan konten sekaligus, gunakan opsi -i atau –include.
- Cara mengirim header kosong
Beberapa API memerlukan header tertentu dalam request, meskipun header tersebut tidak memiliki nilai. Terkadang, header kosong membuat header bekerja dengan cara tertentu. Developer juga menggunakannya untuk melihat respons server terhadap situasi tersebut dan memastikan tidak ada celah yang dapat dimanfaatkan hacker. Untuk mengirim header seperti itu, berikan namanya diikuti titik koma tanpa nilai.
- Cara menghapus header
cURL menambahkan beberapa header secara default, seperti header User-Agent. Jika Anda tidak memerlukannya dan ingin menghapusnya, ketik nama header diikuti titik dua, tanpa memberikan nilai apa pun.
- Cara mengaktifkan mode verbose
Fitur ini digunakan ketika Anda perlu memahami bagaimana server menangani request Anda. Saat mode ini diaktifkan, cURL menyediakan banyak detail, termasuk detail request dan respons, metode HTTP, versi, kode status, informasi tentang proses koneksi, dan lainnya. Mode ini berguna untuk debugging karena menyediakan informasi tentang setiap langkah komunikasi. Anda dapat mengaktifkannya menggunakan opsi -v atau –verbose.
- Cara menyimpan header
Debugging dan pemantauan performa sering kali mengharuskan header disimpan untuk dianalisis dan dicatat. Karena itu, Anda dapat menyimpan header ke file dan menggunakannya nanti. Caranya:
- Gunakan opsi -d atau –dump-header.
- Jika Anda juga perlu menyimpan konten request, tambahkan opsi -o atau –output.
- Setelah perintah, jangan lupa menentukan nama file tempat komputer Anda harus menyimpan header.
Catatan: secara umum, header HTTP tidak peka huruf besar-kecil. Namun, terkadang API mengharapkan header tertentu dan hanya akan berfungsi jika Anda menggunakan kapitalisasi yang tepat. Itulah sebabnya Anda perlu memeriksa dokumentasi dengan cermat sebelum mengirim header.
Proxy untuk mengirim header HTTP dengan cURL
Saat Anda melakukan web scraping atau aktivitas lain yang mengharuskan pengiriman banyak request, Anda mungkin menghadapi masalah seperti batas request atau pemblokiran berbasis lokasi geografis. Dalam hal ini, proxy adalah andalan yang membantu Anda memastikan akses stabil di seluruh dunia. Sebagai contoh, DataImpulse menawarkan proxy yang diperoleh secara etis yang mudah diintegrasikan dan digunakan bersama alat lain, termasuk cURL. Dengan demikian, Anda dapat mengirim sebanyak mungkin request yang diperlukan tanpa terhambat oleh pembatasan.
Kesimpulan
Terkadang, Anda tidak memerlukan alat khusus atau mahal untuk mendapatkan data. cURL tersedia secara gratis dan memungkinkan Anda menentukan request agar memperoleh informasi dengan cepat dan tanpa detail yang tidak perlu. Agar prosesnya semakin efektif, Anda dapat menggabungkan cURL dengan proxy DataImpulse. Kami menawarkan proxy dengan waktu respons 1 detik melalui model harga pay-as-you-go yang ramah di kantong. Klik tombol “Coba sekarang” di sudut kanan atas layar atau hubungi kami di [email protected].














