Cara Penggunaan Perintah Curl di FreeBSD

· 2 min read

Curl adalah perangkat lunak gratis dan sumber terbuka yang dapat digunakan untuk bertukar data dengan server menggunakan salah satu dari banyak protok

Sebagai pengembang web atau administrator sistem, memahami permintaan HTTP dan cara berinteraksi dengan API sangatlah penting, terutama dalam hal mengotomatiskan permintaan dan debugging. Dalam skenario seperti itu, Anda mungkin ingin menjalankan permintaan HTML cepat dari terminal dan di sinilah CURL hadir untuk memenuhi kebutuhan Anda.

Curl adalah perangkat lunak gratis dan sumber terbuka yang dapat digunakan untuk bertukar data dengan server menggunakan salah satu dari banyak protokol yang didukung, seperti HTTP, HTTPS, FTP, FTP, SFTP. Karena Curl adalah alat baris perintah, alat ini dapat digunakan sebagai skrip baris perintah untuk mengotomatiskan tugas berulang seperti mengunduh atau bertukar data dan informasi antara perangkat elektronik.

CURL Klien memungkinkan kita untuk bertukar data antara klien dan server melalui antarmuka baris perintah (CLI). Dengan hanya menentukan alamat URL server dan data yang akan dikirim dan diminta akan segera ditransfer. Tidak hanya itu, curl juga dapat digunakan di mobil, perangkat televisi, router, printer, peralatan audio, ponsel, tablet, dekoder, pemutar media, dan merupakan mesin transfer Internet untuk ribuan aplikasi perangkat lunak di lebih dari sepuluh miliar instalasi.

Dalam artikel ini, kami akan memperkenalkan perintah CURL, mengeksplorasi bagaimana dan mengapa perintah tersebut digunakan, dan menunjukkan beberapa contoh umum perintah CURL dan kasus penggunaannya.


Daftar Isi

1. Install CURL di FreeBSD
2. Cara Menggunakan perintah dasar CURL
3. Download File dengan CURL
4. Melakukan Permintaan POST
5. Mengirim Data JSON atau XML
6. Menggunakan Tipe Konten Multipart/Form-data
7. Mengatur Header Permintaan


curl command FreeBSD



1. Install CURL di FreeBSD

Jika Anda menggunakan server FreeBSD, CURL dapat diinstal melalui port FreeBSD dan juga melalui paket pkg. Dalam artikel ini kami akan menjelaskan cara menginstal CURL dengan sistem port FreeBSD.

root@ns1:~ # cd /usr/ports/ftp/curl
root@ns1:/usr/ports/ftp/curl #
make config
root@ns1:/usr/ports/ftp/curl #
make install clean

Setelah instalasi selesai, periksa versi CURL yang telah diinstal.

root@ns1:~ # curl --version
curl 8.1.2 (amd64-portbld-freebsd13.1) libcurl/8.1.2 OpenSSL/1.1.1t zlib/1.2.13 libpsl/0.21.2 (+libidn2/2.3.4) libssh2/1.11.0 nghttp2/1.53.0
Release-Date: 2023-05-30
Protocols: dict file ftp ftps gopher gophers http https imap imaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets


Dari tampilan script diatas kita bisa melihat bahwa versi CURL yang digunakan adalah curl 8.1.2


2. Cara Menggunakan perintah dasar CURL

Mirip dengan aplikasi baris perintah lainnya seperti git, wget, perl dan fetch, CURL juga memiliki sintaks dasar yang dapat digunakan sebagai referensi untuk menjalankan CURL. Sintaks dasar CURL sangat sederhana dan relatif mudah diingat. Berikut ini adalah contoh sintaks dasar CURL.

curl [OPTIONS] [URL]


Setelah mengetahui perintah dasar CURL, sekarang kita praktikkan dengan situs web google.com. Script CURL di bawah ini digunakan untuk menampilkan konten halaman dan merender halaman dari situs web google.com.

root@ns1:~ # curl http://www.google.com
root@ns1:~ #
curl https://www.google.com
root@ns1:~ #
curl -I https://www.google.com

Setelah Anda mencoba skrip di atas, Anda akan melihat output dari setiap skrip. Perhatikan perbedaan output skrip di atas.

Saat dipanggil dengan skrip di atas, curl mencetak isi respons yang dikirim oleh server ke output standar. Dalam kasus ini, konten yang akan ditampilkan adalah kode HTML halaman. Contoh lain, misalkan kita ingin menghitung berapa kali kata "google" muncul di kode sumber halaman yang dikembalikan oleh permintaan dari contoh skrip di atas.


root@ns1:~ # curl -s https://www.google.com | grep -i -o google | wc -w
115


3. Mengunduh File dengan CURL

Dukungan utilitas berkas perintah Curl untuk mengunduh dan mengunggah berkas. Curl berguna untuk banyak pekerjaan dengan administrasi sistem, pengembangan web untuk memanggil layanan web, dan sebagainya. Misalkan kita ingin mengunduh Firefox versi terbaru dari situs web resmi Mozilla. Untuk menyimpan tarball secara lokal sebagai firefox.tar.bz2, jalankan skrip berikut.

root@ns1:~ # curl --output firefox.tar.gz https://download-installer.cdn.mozilla.net/pub/firefox/releases/106.0.1/linux-x86_64/en-US/firefox-106.0.1.tar.bz2
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
64 75.1M 64 48.1M 0 0 1794k 0 0:00:42 0:00:27 0:00:15 1599k

Sebagai alternatif untuk opsi --output, opsi ini dapat diganti dengan --remote-name atau -O. Ini akan menyebabkan file disimpan dengan nama remote-nya, firefox-106.0.1.tar.bz2, jalankan skrip di bawah ini.

root@ns1:~ # curl --remote-name 'https://download-installer.cdn.mozilla.net/pub/firefox/releases/106.0.1/linux-x86_64/en-US/firefox-106.0.1.tar.bz2'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
12 75.1M 12 9727k 0 0 2594k 0 0:00:29 0:00:03 0:00:26 2594k


Perintah dasar CURL untuk mengunduh File

Untuk mengunduh berkas menggunakan curl gunakan sintaks berikut. Opsi -O digunakan untuk menyimpan berkas pada sistem lokal dengan nama yang sama pada sistem jarak jauh.

root@ns1:~ # curl -O https://www.monsta.com.br/admin/uploader/uploads/Configurando_o_Servidor_DNS_Unbound.pdf
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 198k 100 198k 0 0 52918 0 0:00:03 0:00:03 --:--:-- 52918


Unduh File dan Simpan Dengan Nama Berbeda

Dengan CURL Anda juga dapat menyimpan berkas yang diunduh dengan nama yang berbeda di komputer lokal. Gunakan -o diikuti dengan nama berkas baru untuk mengunduh dan menyimpan berkas dengan nama yang berbeda. Dalam contoh ini, kita akan mengunduh berkas unbound.pdf dan mengganti namanya menjadi serverdnsunbound.pdf.

root@ns1:~ # curl -o serverdnsunbound.pdf https://www.bortzmeyer.org/unbound.pdf
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 75422 100 75422 0 0 34565 0 0:00:02 0:00:02 --:--:-- 34581


Mengunduh Beberapa File Sekaligus

Salah satu kelebihan CURL adalah dapat mengunduh banyak berkas sekaligus. Contoh di bawah ini akan mengunduh berkas unbound.pdf, unbound-windows-manual-02.pdf dan opengate1.5.39.tar.gz.

root@ns1:~ # curl -O https://www.bortzmeyer.org/unbound.pdf -O https://punoqun.net/documentation/unbound/unbound-windows-manual-02.pdf -O https://opengate.osdn.jp/download/opengate1.5.39.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 75422 100 75422 0 0 36376 0 0:00:02 0:00:02 --:--:-- 36383
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 865k 100 865k 0 0 328k 0 0:00:02 0:00:02 --:--:-- 328k
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 106k 100 106k 0 0 40534 0 0:00:02 0:00:02 --:--:-- 40542


Setelah proses download selesai, cek hasil download di folder /root dengan perintah ls, karena saat melakukan download kita aktif di folder root@ns1:~ #

root@ns1:~ # ls
.bash_history .k5login .profile .wget-hsts unbound.pdf
.cshrc .local .shrc
opengate1.5.39.tar.gz
.history .login .ssh
unbound-windows-manual-02.pdf


Mengatur Kecepatan Download

Hampir sama dengan perintah wget, CURL juga memiliki kemampuan untuk membatasi kecepatan unduh file. Berikut ini adalah contoh skrip untuk membatasi kecepatan unduh file dengan CURL.

root@ns1:~ # curl --limit-rate 100k -O https://opengate.osdn.jp/download/opengate1.5.39.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 106k 100 106k 0 0 42754 0 0:00:02 0:00:02 --:--:-- 42768



4. Melakukan Permintaan POST

Metode http POST digunakan untuk membuat sumber daya baru di server. Permintaan POST biasanya menyertakan data, yang dapat dikirim dengan berbagai cara. Cara termudah untuk menyertakan data dalam permintaan POST dengan CURL adalah dengan menggunakan opsi --data (-d) atau --data-urlencode. Data yang dikirim harus dikodekan urlen (dikodekan dalam persen). Jika kita menggunakan yang pertama, kita perlu mengkodekannya terlebih dahulu; jika kita menggunakan yang terakhir (tersedia dalam versi CURL terbaru), sebaliknya, data akan dikodekan secara otomatis.

root@ns1:~ # curl --data-urlencode "name=John Smith" --data-urlencode "age=30" https://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {
"age": "30",
"name": "John Smith"
},
"headers": {
"Accept": "*/*",
"Content-Length": "22",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "curl/8.1.2",
"X-Amzn-Trace-Id": "Root=1-64c5b2a5-0c4b5fc569f1fb7c3408e18d"
},
"json": null,
"origin": "36.90.8.254",
"url": "https://httpbin.org/post"
}


Dalam contoh di atas, kami mengirim permintaan ke situs https://httpbin.org, yang dapat digunakan untuk menguji permintaan tersebut. Server mengembalikan respons yang mencerminkan data yang dikirim dalam permintaan tersebut.


5. Mengirim Data JSON atau XML

Dalam beberapa kasus, kita mungkin perlu mengirim string JSON sebagai data. Dalam kasus seperti itu, kita perlu melakukan dua hal:
a. Mengatur parameter header Content-Type ke application/json secara eksplisit
b. Melewatkan string JSON sebagai argumen ke opsi --data.

Berikut adalah contoh permintaan tersebut:

root@ns1:~ # curl --header "Content-Type: application/json" --data '{"name": "John Smith", "age": 30 }' https://httpbin.org/post
{
"args": {},
"data": "{\"name\": \"John Smith\", \"age\": 30 }",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Content-Length": "34",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/8.1.2",
"X-Amzn-Trace-Id": "Root=1-64c5b4a4-1b6c2b9e56e669d92761a69b"
},
"json": {
"age": 30,
"name": "John Smith"
},
"origin": "36.90.8.254",
"url": "https://httpbin.org/post"
}


Prinsip yang sama harus diterapkan jika kita ingin mengirim data XML, misalnya.

root@ns1:~ # curl --header "Content-Type: text/xml" --data '<person><name>John Smith</name><age>30</age></person>' https://httpbin.org/post
{
"args": {},
"data": "<person><name>John Smith</name><age>30</age></person>",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Content-Length": "53",
"Content-Type": "text/xml",
"Host": "httpbin.org",
"User-Agent": "curl/8.1.2",
"X-Amzn-Trace-Id": "Root=1-64c5b4f6-3297a7c61dca2a4423d8ab7f"
},
"json": null,
"origin": "36.90.8.254",
"url": "https://httpbin.org/post"
}




6. Menggunakan Tipe Konten Multipart/Form-data

Untuk membuat permintaan POST dan menyertakan data menggunakan tipe konten multipart/form-data, kita dapat menjalankan Curl dengan opsi --form (-F). Inilah yang ingin kita gunakan, misalnya saat kita perlu mengunggah file. Ini adalah permintaan yang sama yang kita buat pada contoh sebelumnya, tetapi dilakukan dengan tipe konten berikut.

root@ns1:~ # curl --form "name=John Smith" --form "age=30" https://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {
"age": "30",
"name": "John Smith"
},
"headers": {
"Accept": "*/*",
"Content-Length": "243",
"Content-Type": "multipart/form-data; boundary=------------------------be26f7f1fcf94068",
"Host": "httpbin.org",
"User-Agent": "curl/8.1.2",
"X-Amzn-Trace-Id": "Root=1-64c5b5dc-22b1c1d749f6e0ed4b2c6b11"
},
"json": null,
"origin": "36.90.8.254",
"url": "https://httpbin.org/post"
}




7. Mengatur Header Permintaan

Parameter header digunakan untuk memberikan informasi tambahan ke dalam permintaan, beberapa contohnya adalah Keep-Alive yang digunakan untuk mengontrol berapa banyak koneksi yang harus tetap terbuka atau User-Agent, yang digunakan untuk mengidentifikasi jenis aplikasi dan sistem operasi, atau Accept, yang digunakan untuk menentukan jenis MIME yang diterima oleh klien. Untuk mengatur parameter header dengan Curl, kita dapat menggunakan opsi -H (singkatan dari --header).

root@ns1:~ # curl --header "Accept: text/xml" --header "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0" https://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "text/xml",
"Host": "httpbin.org",
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0",
"X-Amzn-Trace-Id": "Root=1-64c5b772-5d6573380a68c65042b1d669"
},
"origin": "36.90.8.254",
"url": "https://httpbin.org/get"
}


Untuk menetapkan agen pengguna yang melakukan permintaan, Curl menyediakan pintasan melalui opsi --user-agent (-A).

root@ns1:~ # curl --user-agent "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0" https://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0",
"X-Amzn-Trace-Id": "Root=1-64c5b7e3-74c46169149208f9465e53f1"
},
"origin": "36.90.8.254",
"url": "https://httpbin.org/get"
}



Curl adalah utilitas yang berguna untuk membuat GET, POST, HEADER, dan banyak permintaan lainnya ke server jarak jauh. Curl bahkan berguna untuk mengunduh file jarak jauh seperti wget dan git dengan cepat. Tutorial ini hanyalah beberapa contoh penggunaan CURL, Anda dapat membaca artikel lain yang membahas CURL secara lebih mendalam.
Subscribe on LinkedIn Cara Penggunaan Perintah Curl di FreeBSD

Enclosures Link: Cara Penggunaan Perintah Curl di FreeBSD

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar