Dalam tutorial ini, kami akan menunjukkan kepada Anda bagaimana menggunakan tool curl melalui contoh-contoh praktis dan penjelasan rinci tentang opsi curl yang paling umum dalam penggunaan sehari-hari.

Diharapkan Anda membuka konsol terminal distribusi Linux untuk mengikuti panduan di halaman ini agar Anda lebih memahami cara kerja perintah curl di Linux terminal.

Kami juga sarankan Anda untuk menguji setiap tutorial atau panduan apapun yang ada di Internet di virtual machine (vmware atau virtualbox) sebelum menerapkan ke server produksi, agar tidak mengacaukan sistem yang aktif berjalan ketika ada kesalahan.

Anda bisa melihat cara installasi VMware di Ubuntu dan CentOS, dan VirtualBox di UbuntuFedora, dan CentOS

Apa itu Curl?

Curl adalah utilitas baris perintah untuk mentransfer data dari atau ke server yang dirancang untuk bekerja tanpa interaksi pengguna. Dengan curl, Anda dapat download atau upload data menggunakan salah satu protokol yang didukung termasuk HTTP, HTTPS, SCP, SFTP, dan FTP.

Curl menyediakan sejumlah opsi yang memungkinkan Anda melanjutkan transfer, membatasi bandwidth, dukungan proxy, otentikasi pengguna, dan banyak lagi.

Cara Install Utilitas Curl

Paket curl biasaya sudah diinstal secara default pada sebagian besar distribusi Linux hari ini.

Untuk memeriksa apakah paket curl diinstal pada sistem Anda, buka konsol Anda, ketik curl, dan tekan enter. Jika Anda telah memasang curl, sistem akan mencetak output curl: try 'curl --help' or 'curl --manual' for more information, jika tidak, Anda akan melihat sesuatu seperticurl command not found.

Jika curl tidak diinstal, Anda dapat menginstalnya dengan mudah menggunakan manajer paket distro Anda.

Install Curl di Ubuntu dan Debian

sudo apt install curl

Install Curl di CentOS dan Fedora

sudo yum install curl

Sintaks dasar Curl

Sebelum membahas cara menggunakan perintah curl, mari kita mulai dengan meninjau sintaks dasar.

Ekspresi utilitas curl mengambil bentuk sebagai berikut:

curl [options] [URL...]
  • options – opsi Curl yang dimulai dengan satu atau dua strip
  • URL – URL server jarak jauh.

Bagaimana Cara Menggunakan Curl

Dalam bentuknya yang paling sederhana ketika digunakan tanpa opsi apa pun, curl akan menampilkan sumber daya yang ditentukan dalam [url] ke output standar.

Dalam contoh berikut ini, kami mengunjungi beranda dari example.com:

curl example.com

Perintah di atas akan mencetak source-code dari beranda example.com di jendela terminal Anda.

Jika Anda tidak menentukan protokol, curl akan mencoba menerka protokol yang ingin Anda gunakan dan akan default ke HTTP.

Cara Menyimpan Output Curl ke File

Untuk menyimpan hasil dari perintah curl, Anda dapat menggunakan flag -o atau -O.

flag dengan o dengan huruf kecil, -o akan menyimpan file dengan nama yang ditentukan, yang dalam contoh di bawah ini adalah vue-v2.5.16.js:

curl -o vue-v2.5.16.js  https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Sedangkan flag dengan Ohuruf besar -O akan menyimpan file dengan nama file aslinya, yang dalam contoh di bawah ini adalah vue.js:

curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js

Cara Download Banyak File Menggunakan Curl

Untuk mengunduh banyak file sekaligus, Anda dapat menggunakan multiple flag -O  dan diikuti oleh URL ke file yang ingin Anda unduh. Dalam contoh berikut ini, kami mengunduh file Arch Linux dan Debian iso:

curl -O http://mirrors.edge.kernel.org/archlinux/iso/2018.06.01/archlinux-2018.06.01-x86_64.iso / -O https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.4.0-amd64-netinst.iso

Cara Melanjutkan download dengan Curl

Anda dapat melanjutkan download dengan menggunakan opsi -C -. Opsi ini sangat berguna jika koneksi Anda menurun saat mengunduh file besar dan alih-alih memulai unduhan dari awal, Anda dapat melanjutkan yang sebelumnya.

Misalnya, jika Anda mengunduh file Ubuntu 18.04 iso  menggunakan perintah berikut:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

dan tiba-tiba koneksi Anda terhenti dan download terputus, Ketika koneksi internet lancar kembali, Anda dapat melanjutkan unduhan dengan perintah berikut:

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso

Mendapatkan HTTP Headers dari URL dengan Curl

Untuk fetch HTTP headers dari sumber yang ditentukan, gunakan flag -I:

curl -I --http2 https://www.ubuntu.com/

Menguji Apakah Website Mendukung HTTP/2 dengan Curl

Untuk memeriksa apakah URL tertentu mendukung protokol HTTP/2 yang baru, fetch Header HTTP dengan -I bersama dengan flag --http2:

curl -I --http2 -s https://www.linuxid.net | grep HTTP
output :
HTTP/2 200
curl -I --http2 -s https://www.ubuntu.com/ | grep HTTP 
output :
HTTP/1.1 200 OK

Seperti yang Anda lihat dari output di atas jika situs mendukung HTTP/2, curl akan mencetak HTTP/2.0 200, jika tidak maka akan mencetak HTTP/1.1 200.

Jika Anda memiliki curl versi 7.47.0 atau yang lebih baru, Anda tidak perlu menggunakan flag --http2 karena HTTP/2 diaktifkan secara default untuk semua koneksi HTTPS.

Pada perintah di atas kita juga telah menggunakan flag -s, yang memberitahu curl untuk berjalan dalam mode silent (senyap) dan menyembunyikan progress meter dan pesan kesalahan.

Mengikuti Redirects dengan cURL

Jika Anda mencoba mengambil beranda google.co.id tanpa www , Anda akan melihat yang berikut:

curl google.com

curl-follow-redirects

Seperti yang dapat Anda lihat dari output di atas google.com mengalihkan ke versi www dan karena secara default curl tidak mengikuti header Lokasi HTTP, Anda tidak akan mendapatkan sumber dari beranda Google.

Dalam kasus ini, Anda dapat menggunakan flag -L yang memerintahkan curl untuk mengikuti redirect apa pun hingga mencapai tujuan akhir:

curl -L google.com

Mengganti User-Agent Curl

Kadang-kadang saat mengunduh file, server jarak jauh dapat diatur untuk memblokir Curl User-Agent atau mungkin halaman yang ingin Anda download menyajikan konten yang sama sekali berbeda tergantung pada perangkat pengunjung dan browser.

Dalam situasi seperti ini, kita dapat meniru browser yang berbeda, gunakan flag -A:

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/

Perintah di atas akan meniru Firefox 60 yang meminta halaman dari getfedora.org.

Menentukan Transfer Rate Maximum

Untuk membatasi kecepatan transfer data gunakan tanda--limit-rate. Nilai dapat dinyatakan dalam byte, kilobyte dengan sufiks k, megabytes dengan sufiks m dan gigabytes dengan sufiks g.

Perintah berikut akan mengunduh binari Go dan membatasi kecepatan unduh hingga 1mb:

Perintah berikut akan mengunduh binari Go dan membatasi kecepatan download hingga 1mb:

curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz

Opsi ini sangat berguna ketika Anda tidak ingin curl mengkonsumsi semua bandwidth yang tersedia.

Cara Transfer File via FTP dengan Curl

Untuk mengakses server FTP yang dilindungi dengan perintah curl, Anda harus melewati flag -u dan menentukan nama pengguna dan kata sandi seperti yang ditunjukkan di bawah ini:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Perintah di atas akan mencantumkan semua file dan direktori di direktori home pengguna.

Anda dapat mengunduh file dari server FTP dengan:

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

Untuk upload file ke server FTP gunakan -T dan diikuti dengan nama file yang ingin Anda unggah:

curl -T FileUpload.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Cara Mengirim Cookie dengan Curl

Saat membuat permintaan menggunakan curl, tidak ada cookie yang dikirim atau disimpan secara default. Terkadang Anda mungkin perlu membuat permintaan HTTP dengan cookie tertentu untuk mengakses sumber daya jarak jauh atau untuk men-debug masalah.

Untuk mengirim cookie ke server, gunakan switch -b dan diikuti dengan nama file yang berisi cookie atau string.

Dalam contoh berikut, kami mengunduh file rpm Java JDK jdk-10.0.2_linux-x64_bin.rpm di homepage dan mengirimkan cookie bernama oraclelicensedengan value a.

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

Menggunakan Curl dengan Proxies

Curl mendukung berbagai jenis proxy termasuk HTTP, HTTPS dan SOCKS.

Untuk mentransfer data melalui server proxy, gunakan opsi -x (--proxy) diikuti dengan URL proxy

Untuk mengunduh halaman web linux.com menggunakan proxy pada port 192.168.44.1 port 8888, Anda akan menggunakan sesuatu seperti ini:

curl -x 192.168.44.1:8888 http://linux.com/

Jika server proxy memerlukan otentikasi, gunakan opsi -U (--proxy-user) diikuti dengan nama pengguna dan kata sandi yang dipisahkan oleh titik dua (user:password):

curl -U doni:Passvv0rd -x 192.168.44.1:8888 http://linux.com/

Kesimpulan

Contoh-contoh yang ditunjukkan dalam tutorial ini merupakan opsi curl yang paling banyak digunakan dan dimaksudkan untuk mencoba dan membantu Anda memahami cara kerja perintah curl.

Jika Anda ingin mempelajari lebih lanjut tentang curl, kunjungi halaman Dokumentasi Curl.