Menguasai `cURL` di Linux: Panduan Praktis untuk Download & API Requests
1
min read
.
Updated on
02 Sep 2025
Dulu saya sering kebingungan pas harus ambil file dari internet atau nge-hit API pakai Linux. Terus ketemu cURL
, dan gini deh, hidup jadi jauh lebih gampang. Tool ini fleksibel banget, bisa download file, kirim request HTTP, sampai upload file. Di sini kita mau kasih panduan praktis pakai cURL
yang bisa langsung dicoba.
1. Apa Itu cURL
?
cURL
(Client URL) itu command-line tool buat kirim dan terima data via berbagai protokol: HTTP, HTTPS, FTP, dan lain-lain.
Kegunaannya umum banget:
Download file dari web atau FTP.
Kirim HTTP request ke API atau web service.
Upload file ke server remote.
2. Install & Cek cURL
Cek dulu:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
Kalau belum ada, install:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
# Debian/Ubuntu
sudo apt-get update
sudo apt-get install curl
3. Perintah Dasar cURL
a. Download File
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -O http://example.com/file.zip
-O
→ simpan dengan nama file asli dari URL.
b. Simpan ke Nama File Tertentu
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -o custom-name.zip http://example.com/file.zip
-o
→ tentukan nama file output.
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -I http://example.com
-I
→ cuma ambil header HTTP.
d. POST Data
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -X POST -d "param1=value1¶m2=value2" http://example.com/api
-X POST
→ request method POST
-d
→ data yang dikirim
e. POST JSON
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com/api
4. Fitur Lanjutan
a. Autentikasi
Basic Auth:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -u username:password http://example.com
Token-based:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -H "Authorization: Bearer YOUR_TOKEN" http://example.com
b. Cookie
Simpan cookie:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -c cookies.txt http://example.com
Kirim cookie:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -b cookies.txt http://example.com
c. Ikuti Redirect
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -L http://example.com
d. Limit Download Speed
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl --limit-rate 200K http://example.com/file.zip
e. Resume Download Terputus
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
curl -C - -O http://example.com/file.zip
5. Menggunakan cURL
di Script
Contoh ambil status code website:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
#!/bin/bash
url= "http://example.com"
status_code= $( curl -o /dev/null -s -w "%{http_code}" " $url" )
echo "Status Code: $status_code"
Jalankan:
$el.innerText = 'Copy', 2000)"
class="absolute top-2 right-2 bg-neutral-700 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity"
>
Copy
chmod +x check_status.sh
./check_status.sh
6. Kesimpulan
Pada akhirnya, cURL
itu must-have tool buat siapa pun yang kerja di Linux. Bisa download file, kirim request API, atau bikin automation script. Sejak rutin pakai cURL
, pekerjaan kita jadi lebih cepat dan bebas pusing sama download manual atau API testing.