Bermain-main dengan CURL

CURL adalah sebuah produk project berbasis ‘command line’ yang digunakan sebagai software client HTTP. Dalam prakteknya, CURL digunakan untuk melakukan hit terhadap sebuah URL, dan akan menangkap kembalian dalam wujud text mode. Sederhananya : browsing dengan command line. Mengapa CURL harus ada? CURL ada untuk menjadi cikal-bakal browser lainnya, dapat juga menjadi tool yang digunakan oleh bahasa-bahasa pemrograman, untuk mendapatkan hasil browsing berupa text, sehingga dapat dikenai aksi parsing.

Bagaimana instalasi CURL?

Untuk Linux user, CURL adalah perangkat yang sudah disediakan di repository instalasi distro masing-masing Linux.

Instalasi dapat juga dilakukan dengan melakukan dowload langsung dari https://curl.haxx.se, kemudian dilakukan kompilasi program sendiri, sesuai petunjuk yang ada pada dokumentasi instalasi situs tersebut.

Bagaimana dengan Windows?

CURL Windows juga tersedia pada halaman download situs http://curl.haxx.se, pada bagian Win32 atau Win64, sesuai dengan spesifikasi Windows.

 

Bagaimana menggunakan CURL?

Cara menggunakan CURL cukup mudah, tinggal ketik

Misal :

Pada tampilan hasil, akan memunculkan semua HTML Client Source dari situs yang dipanggil/dihit.

 

Penggunaan Lanjut CURL

CURL akan digunakan secara lebih mendalam pada fungsi-fungsi lain seperti print header, verbosing (memunculkan debug), POST data via command line, testing SSL, testing sebuah webserver dan hingga kebutuhan-kebutuhan programming. Berikut di bawah dapat dicoba satu persatu fitur-fitur CURL yang biasa digunakan.

1. Print Header Lengkap

contoh

2. Memeriksa status kompresi data dari sebuah web

contoh

contoh hasilnya adalah :

Untuk standard browser jaman sekarang, semua pasti akan merequest konten dalam format terkompresi pada webserver. Jika tidak meminta, maka webserver tidak akan memberikan format kompresi. Namun jika meminta namun webserver tidak mendukung kompresi, maka content juga tetap tidak akan dikirimkan dalam bentuk terkompresi.

Bagian di bawah ini menunjukkan bahwa browser (dalam hal ini curl) meminta bentuk kompresi.

Sedangkan bagian di bawah ini menunjukkan bahwa server mengirimkan data dalam format kompresi

 

3. Penggabungan dengan command grep 

Untuk mempermudah mendapatkan string yang diinginkan, maka perintah curl juga dapat digabungkan dengan pipe ( | ) dan grep. Contoh

4. Melakukan POST data

Salah satu method yang ada di dalam transfer data HTTP adalah POST. POST adalah proses transfer data dengan skema pengiriman data ke server dengan metode upload, meski itu adalah text. Lawannya adalah GET. Kondisi default browsing adalah GET. POST akan dilakukan saat proses pengiriman form, posting berita, pengiriman webmail dilakukan.

contoh :

5. Modifikasi header useragent

Useragent adalah jenis browser beserta sistem operasi yang digunakan. Pada sebuah server web, biasanya akan terdapat access_log HTTP, biasanya akan memuat informasi Useragent. Misal:

Bagian “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36″ adalah memuat Useragent yang digunakan oleh client dalam melakukan hit ke server web.

 

Untuk bekas hit oleh curl, maka keluaran log akan menjadi seperti berikut

CURL didesain untuk dapat mengirimkan header atas nama browser lain. Contoh yang dapat digunakan adalah :

opsi -A adalah digunakan untuk menentukan useragent. Dengan demikian pada bagian log, akan mengeluarkan informasi bahwa yang melakukan hit adalah Mozilla .

 

6. Membuka expired key HTTPS 

HTTPS adalah HTTP Secure. Yaitu protokol web yang disertai dengan kunci SSL agar transformasi data yang terbentuk menjadi terenkripsi. Namun kunci SSL yang sudah tidak valid mengakibatkan CURL menampilkan halaman error.  Contohnya adalah :

Kondisi seperti itu dapat dibuka dengan CURL dengan opsi -k

7. Menentukan versi transfer HTTP

Pada log server selalu memunculkan versi HTTP Transfer. Biasanya pada masa ini adalah berjalan pada HTTP 1.1. Namun ada juga beberapa kasus, bahwa server web tidak memberikan respon HTTP dengan sempurna karena ternyata belum mendukung HTTP 1.1, melainkan HTTP 1.0. Oleh karena hal itu, maka dapat dilakukan modifikasi header untuk mengubah versi cara transaksi data HTTP menjadi http 1.0.

Contoh :

Maka pada log server akan memunculkan hasil HTTP 1.0 sebagai versi yang digunakan oleh client terhadap server bertransaksi.

 

8. Verbosing

Untuk melakukan debuging di sisi client, maka seorang pengguna curl dapat melakukan penambahan opsi -v atau -vv untuk mengeluarkan debugging curl. Contoh

 

 

Sekedar catatan

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">