15 Tips Cara Menggunakan Perintah 'Curl' di Linux


Pada pertengahan tahun 1990-an ketika Internet masih dalam tahap awal, seorang programmer asal Swedia bernama Daniel Stenberg memulai sebuah proyek yang akhirnya berkembang menjadi apa yang kita kenal sebagai curl saat ini.

Awalnya, ia bertujuan untuk mengembangkan bot yang akan mengunduh nilai tukar mata uang dari halaman web secara berkala dan akan memberikan nilai setara Kronor Swedia dalam dolar AS kepada pengguna IRC.

Singkat cerita, proyek ini berkembang pesat, menambahkan beberapa protokol dan fitur sepanjang prosesnya – dan sisanya tinggal sejarah. Sekarang mari selami lebih dalam dan pelajari cara menggunakan curl untuk mentransfer data dan banyak lagi di Linux!

Kami telah menyusun daftar 15 perintah curl berikut untuk Anda.

1. Lihat Versi curl

Opsi -V atau --version tidak hanya akan mengembalikan versi, namun juga protokol dan fitur yang didukung dalam versi Anda saat ini.

curl --version

curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets 

2. Unduh File

Jika Anda ingin mendownload file, Anda dapat menggunakan curl dengan opsi -O atau -o. Yang pertama akan menyimpan file di direktori kerja saat ini dengan nama yang sama seperti di lokasi jauh, sedangkan yang kedua memungkinkan Anda menentukan nama file dan/atau lokasi yang berbeda.

curl -O http://yourdomain.com/yourfile.tar.gz # Save as yourfile.tar.gz
curl -o newfile.tar.gz http://yourdomain.com/yourfile.tar.gz # Save as newfile.tar.gz

3. Melanjutkan Pengunduhan yang Terganggu

Jika pengunduhan terhenti karena alasan tertentu (misalnya, menggunakan Ctrl + c), Anda dapat melanjutkannya dengan sangat mudah. Penggunaan -C – (tanda hubung C, spasi) memberitahu curl untuk melanjutkan pengunduhan mulai dari bagian terakhirnya.

curl -C - -O http://yourdomain.com/yourfile.tar.gz

4. Unduh Banyak File

Dengan perintah berikut Anda akan mengunduh info.html dan about.html dari http://situsAnda.com dan http:/ /mysite.com, masing-masing, sekaligus.

curl -O http://yoursite.com/info.html -O http://mysite.com/about.html 

5. Unduh URL Dari File

Jika Anda menggabungkan curl dengan xargs, Anda dapat mengunduh file dari daftar URL dalam sebuah file.

xargs -n 1 curl -O < listurls.txt

6. Gunakan Proxy dengan atau tanpa Otentikasi

Jika Anda berada di belakang server proxy yang mendengarkan pada port 8080 di proxy.domainanda.com, lakukan.

curl -x proxy.yourdomain.com:8080 -U user:password -O http://yourdomain.com/yourfile.tar.gz

di mana Anda dapat melewati -U pengguna:kata sandi jika proxy Anda tidak memerlukan autentikasi.

7. Kueri Header HTTP

Header HTTP memungkinkan server web jarak jauh mengirimkan informasi tambahan tentang dirinya bersama dengan permintaan sebenarnya. Ini memberi klien rincian tentang bagaimana permintaan ditangani.

Untuk menanyakan header HTTP dari situs web, lakukan:

curl -I linux-console.net

Informasi ini juga tersedia di alat pengembang browser Anda.

8. Buat permintaan POST dengan Parameter

Perintah berikut akan mengirimkan parameter firstName dan lastName, beserta nilainya yang terkait, ke https://domainanda.com/info.php .

curl --data "firstName=John&lastName=Doe" https://yourdomain.com/info.php

Anda dapat menggunakan tip ini untuk mensimulasikan perilaku formulir HTML biasa.

9. Download File dari Server FTP dengan atau tanpa Otentikasi

Jika server FTP jarak jauh mengharapkan koneksi di ftp://yourftpserver, perintah berikut akan mengunduh yourfile.tar.gz di direktori kerja saat ini.

curl -u username:password -O ftp://yourftpserver/yourfile.tar.gz 

di mana Anda dapat melewati -u nama pengguna:kata sandi jika server FTP mengizinkan login anonim.

10. Upload File ke server FTP dengan atau tanpa Otentikasi

Untuk mengunggah file lokal bernama mylocalfile.tar.gz ke ftp://yourftpserver menggunakan curl, lakukan:

curl -u username:password -T mylocalfile.tar.gz ftp://yourftpserver

11. Tentukan Agen Pengguna

Agen pengguna adalah bagian dari informasi yang dikirimkan bersama dengan permintaan HTTP. Ini menunjukkan browser mana yang digunakan klien untuk membuat permintaan. Mari kita lihat apa yang digunakan versi curl kita saat ini sebagai default, dan mari kita ubah nanti menjadi “Saya adalah browser web baru ”:

curl -I http://localhost --user-agent "I am a new web browser"

12. Simpan Cookie Situs Web

Ingin melihat cookie mana yang diunduh ke komputer Anda saat Anda menjelajah https://www.cnn.com? Gunakan perintah berikut untuk menyimpannya ke cnncookies.txt. Anda kemudian dapat menggunakan perintah cat untuk melihat file.

curl --cookie-jar cnncookies.txt https://www.cnn.com/index.html -O

13. Kirim Cookie Situs Web

Anda dapat menggunakan cookie yang diambil pada tip terakhir dalam permintaan berikutnya ke situs yang sama.

curl --cookie cnncookies.txt https://www.cnn.com

14. Ubah Resolusi Nama

Jika Anda seorang pengembang web dan ingin menguji versi lokal domainanda.com sebelum meluncurkannya secara langsung, Anda dapat membuat resolusi curl http://www.domainanda.com ke localhost Anda seperti ini:

curl --resolve www.yourdomain.com:80:localhost http://www.yourdomain.com/

Oleh karena itu, kueri ke http://www.domainanda.com akan memberitahu curl untuk meminta situs dari localhost alih-alih menggunakan DNS atau file /etc/hosts.

15. Batasi Kecepatan Pengunduhan

Untuk mencegah curl menghabiskan bandwidth Anda, Anda dapat membatasi kecepatan pengunduhan hingga 100 KB/dtk sebagai berikut.

curl --limit-rate 100K http://yourdomain.com/yourfile.tar.gz -O
Ringkasan

Pada artikel kali ini kami telah berbagi sejarah singkat asal usul curl dan menjelaskan cara menggunakannya melalui 15 contoh praktis.

Apakah Anda mengetahui perintah curl lain yang mungkin kami lewatkan di artikel ini? Jangan ragu untuk membaginya dengan komunitas kami di komentar! Selain itu, jika Anda memiliki pertanyaan, silakan beri tahu kami. Kami menantikan kabar dari Anda!