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 Ubuntu, Fedora, 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 stripURL
– 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
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 oraclelicense
dengan 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.