curl
adalah utilitas baris perintah untuk mentransfer data dari atau ke server yang dirancang untuk bekerja tanpa interaksi pengguna. Dengan curl
, Anda dapat mengunduh atau mengunggah data menggunakan salah satu protokol yang didukung termasuk HTTP, HTTPS, SCP, SFTP, dan FTP. curl
menyediakan sejumlah opsi yang memungkinkan Anda untuk melanjutkan transfer, membatasi bandwidth, dukungan proxy, otentikasi pengguna, dan banyak lagi.
Dalam tutorial ini, kami akan menunjukkan cara menggunakan alat curl melalui contoh praktis dan penjelasan rinci tentang opsi curl yang paling umum.
Menginstal Curl #
Paket curl sudah diinstal sebelumnya di sebagian besar distribusi Linux saat ini.
Untuk memeriksa apakah paket Curl diinstal pada sistem Anda, buka konsol Anda, ketik curl
, dan tekan enter. Jika Anda memiliki curl
diinstal, sistem akan mencetak curl: try 'curl --help' or 'curl --manual' for more information
. Jika tidak, Anda akan melihat sesuatu seperti curl command not found
.
Jika curl
tidak diinstal, Anda dapat menginstalnya dengan mudah menggunakan manajer paket distribusi Anda.
Instal Curl di Ubuntu dan Debian #
sudo apt update
sudo apt install curl
Instal Curl di CentOS dan Fedora #
sudo yum install curl
Cara Menggunakan Keriting #
Sintaks untuk curl
perintahnya adalah sebagai berikut:
curl [options] [URL...]
Dalam bentuknya yang paling sederhana, ketika dipanggil tanpa opsi apa pun, curl
menampilkan sumber daya yang ditentukan ke output standar.
Misalnya, untuk mengambil example.com
beranda yang akan Anda jalankan:
curl example.com
Perintah akan mencetak kode sumber dari example.com
beranda di jendela terminal Anda.
Jika tidak ada protokol yang ditentukan, curl
mencoba menebak protokol yang ingin Anda gunakan, dan defaultnya adalah HTTP
.
Simpan Output ke File #
Untuk menyimpan hasil curl
perintah, gunakan salah satu -o
atau -O
pilihan.
Huruf kecil -o
menyimpan file dengan nama file yang telah ditentukan, yang pada contoh di bawah ini adalah vue-v2.6.10.js
:
curl -o vue-v2.6.10.js https://cdn.jsdelivr.net/npm/vue/dist/vue.js
Huruf besar -O
menyimpan file dengan nama file aslinya:
curl -O https://cdn.jsdelivr.net/npm/vue/dist/vue.js
Unduh Banyak file #
Untuk mengunduh banyak file sekaligus, gunakan beberapa -O
pilihan, diikuti dengan URL ke file yang ingin Anda unduh.
Dalam contoh berikut, kami mengunduh file iso Arch Linux dan Debian:
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
Lanjutkan Unduhan #
Anda dapat melanjutkan unduhan dengan menggunakan -C -
pilihan. Ini berguna jika koneksi Anda terputus selama pengunduhan file besar, dan alih-alih memulai pengunduhan dari awal, Anda dapat melanjutkan pengunduhan sebelumnya.
Misalnya, jika Anda mengunduh file iso Ubuntu 18.04 menggunakan perintah berikut:
curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
dan tiba-tiba koneksi Anda terputus, Anda dapat melanjutkan pengunduhan dengan:
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso
Dapatkan HTTP Header dari URL #
Header HTTP adalah pasangan nilai kunci yang dipisahkan titik dua yang berisi informasi seperti agen pengguna, tipe konten, dan penyandian. Header dilewatkan antara klien dan server dengan permintaan atau respons.
Gunakan -I
opsi untuk mengambil hanya header HTTP dari sumber daya yang ditentukan:
curl -I --http2 https://www.ubuntu.com/
Uji apakah Situs Web Mendukung HTTP/2 #
Untuk memeriksa apakah URL tertentu mendukung protokol HTTP/2 baru, ambil Header HTTP dengan -I
bersama dengan --http2
pilihan:
curl -I --http2 -s https://linuxize.com/ | grep HTTP
-s
opsi memberitahu curl
untuk berjalan secara diam (tenang) dan menyembunyikan pengukur kemajuan dan pesan kesalahan.
Jika server jauh mendukung HTTP/2, curl
mencetak HTTP/2.0 200
:
HTTP/2 200
Jika tidak, responsnya adalah HTTP/1.1 200
:
HTTP/1.1 200 OK
Jika Anda memiliki versi curl 7.47.0
atau yang lebih baru, Anda tidak perlu menggunakan --http2
pilihan karena HTTP/2 diaktifkan secara default untuk semua koneksi HTTPS.
Ikuti Pengalihan #
Secara default, curl
tidak mengikuti header Lokasi HTTP.
Jika Anda mencoba mengambil versi non-www dari google.com
, Anda akan melihat bahwa alih-alih mendapatkan sumber laman, Anda akan dialihkan ke versi www:
curl google.com
-L
opsi menginstruksikan curl
untuk mengikuti pengalihan apa pun hingga mencapai tujuan akhir:
curl -L google.com
Ubah Agen-Pengguna #
Terkadang saat mengunduh file, server jarak jauh mungkin disetel untuk memblokir Agen Pengguna Curl atau mengembalikan konten yang berbeda tergantung pada perangkat pengunjung dan browser.
Dalam situasi seperti ini untuk meniru browser yang berbeda, gunakan -A
pilihan.
Misalnya untuk mengemulasi Firefox 60 Anda akan menggunakan:
curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://getfedora.org/
Tentukan Tarif Transfer Maksimum #
--limit-rate
pilihan memungkinkan Anda untuk membatasi kecepatan transfer data. Nilai dapat dinyatakan dalam byte, kilobyte dengan k
akhiran, megabyte dengan m
akhiran, dan gigabyte dengan g
akhiran.
Pada contoh berikut curl
akan mengunduh biner Go dan membatasi kecepatan unduh hingga 1 mb:
curl --limit-rate 1m -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
Opsi ini berguna untuk mencegah curl
menghabiskan semua bandwidth yang tersedia.
Transfer File melalui FTP #
Untuk mengakses server FTP yang dilindungi dengan curl
, gunakan -u
pilihan dan tentukan nama pengguna dan kata sandi seperti yang ditunjukkan di bawah ini:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Setelah masuk, perintah tersebut mencantumkan semua file dan direktori di direktori home pengguna.
Anda dapat mengunduh satu file dari server FTP menggunakan sintaks berikut:
curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz
Untuk mengunggah file ke server FTP, gunakan -T
diikuti dengan nama file yang ingin Anda unggah:
curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/
Kirim Cookie #
Terkadang Anda mungkin perlu membuat permintaan HTTP dengan cookie tertentu untuk mengakses sumber daya jarak jauh atau untuk men-debug masalah.
Secara default, saat meminta sumber daya dengan curl
, tidak ada cookie yang dikirim atau disimpan.
Untuk mengirim cookie ke server, gunakan -b
switch diikuti dengan nama file yang berisi cookie atau string.
Misalnya, untuk mengunduh file rpm Oracle Java JDKjdk-10.0.2_linux-x64_bin.rpm
Anda harus memberikan cookie bernama oraclelicense
dengan nilai 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 Proksi #
curl
mendukung berbagai jenis proxy, termasuk HTTP, HTTPS, dan SOCKS. Untuk mentransfer data melalui server proxy, gunakan -x
(--proxy
), diikuti oleh URL proxy.
Perintah berikut mengunduh sumber daya yang ditentukan menggunakan proxy di 192.168.44.1
port 8888
:
curl -x 192.168.44.1:8888 http://linux.com/
Jika server proxy memerlukan otentikasi, gunakan -U
(--proxy-user
) pilihan diikuti dengan nama pengguna dan kata sandi yang dipisahkan oleh titik dua (user:password
):
curl -U username:password -x 192.168.44.1:8888 http://linux.com/
Kesimpulan #
curl
adalah alat baris perintah yang memungkinkan Anda mentransfer data dari atau ke host jarak jauh. Ini berguna untuk memecahkan masalah, mengunduh file, dan banyak lagi.
Contoh yang ditampilkan dalam tutorial ini sederhana, tetapi mendemonstrasikan curl
yang paling sering digunakan pilihan dan dimaksudkan untuk membantu Anda memahami bagaimana curl
perintah kerja.
Untuk informasi lebih lanjut tentang curl
kunjungi halaman Dokumentasi Curl.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.