cURL Cheat Sheet
Perintah cUrl yang berguna dengan parameter
Berikut adalah panduan singkat untuk perintah cURL yang paling berguna beserta parameter-parameternya:
Gambar di atas dihasilkan oleh Flux - model AI teks ke gambar.
Penggunaan Dasar cURL
- Unduh file:
curl http://example.com/file.zip -o file.zip
- Unduh beberapa file:
curl -O URL1 -O URL2
- Ikuti redirect:
curl -L http://example.com/file
- Tampilkan hanya header:
curl -I http://example.com
Otentikasi
- Otentikasi dasar:
curl -u username:password http://example.com
- Gunakan file .netrc:
curl --netrc-file .netrc http://example.com
Metode HTTP
- Permintaan POST:
curl -X POST -d 'name=value' http://example.com
- Permintaan PUT:
curl -X PUT -d @file http://example.com
- Metode khusus:
curl -X METODE http://example.com
Header dan Data
- Tambahkan header khusus:
curl -H "X-Header: Nilai" http://example.com
- Kirim data JSON:
curl -H "Content-Type: application/json" -d '{"key":"value"}' http://example.com
- Kirim data formulir:
curl -F "key=value" -F "file=@localfile" http://example.com
Opsi SSL/TLS
- Abaikan verifikasi sertifikat SSL:
curl -k https://example.com
- Gunakan sertifikat klien:
curl --cert cert.pem --key key.pem https://example.com
Proxy dan Jaringan
- Gunakan proxy:
curl -x proxysever.server.com:PORT http://example.com
- Batasi kecepatan unduh:
curl --limit-rate 1000B -O http://example.com/file
Kontrol Output
- Mode diam:
curl -s http://example.com
- Mode rinci:
curl -v http://example.com
- Tulis output ke file:
curl -o file.html http://example.com
- Simpan dengan nama file jarak jauh:
curl -O http://example.com/file.zip
Berbagai
- Lanjutkan unduhan yang gagal:
curl -C - -o partial_file.zip http://example.com/file.zip
- Tetapkan timeout:
curl --connect-timeout 10 http://example.com
- Gunakan file konfigurasi:
curl -K config_file http://example.com
Panduan ini mencakup perintah cURL yang paling umum digunakan beserta parameternya, memberikan referensi cepat untuk berbagai operasi HTTP dan transfer data.
Perintah cURL Lanjutan
Berikut adalah beberapa perintah cURL lanjutan untuk debugging:
-
Output rinci:
curl -v https://example.com
Perintah ini memberikan informasi rinci tentang permintaan dan respons, termasuk header dan detail koneksi. -
Dump trace lengkap:
curl --trace - https://example.com
Ini menghasilkan hexdump dari semua data masuk dan keluar, memberikan pandangan menyeluruh tentang seluruh komunikasi. -
Trace dengan timestamp:
curl --trace - --trace-time https://example.com
Ini menambahkan timestamp ke output trace, membantu menganalisis masalah terkait waktu. -
Tampilkan hanya header respons:
curl -s -o /dev/null -D - https://example.com
Perintah ini menampilkan hanya header respons, berguna untuk analisis cepat header. -
Tampilkan hanya header permintaan:
curl -v -s -o /dev/null --stderr - https://example.com | grep '^>'
Perintah kompleks ini menyaring hanya header permintaan, berguna untuk memeriksa apa yang dikirim. -
Gunakan Pantheon Debugger:
curl -I -H "Pantheon-Debug:1" https://example.com
Perintah ini menggunakan header Debug Pantheon untuk mendapatkan informasi tambahan tentang permintaan, berguna untuk situs yang dihosting di Pantheon. -
Paksa protokol HTTP/2:
curl --http2 https://example.com
Ini memastikan penggunaan protokol HTTP/2, yang dapat dikombinasikan dengan -I untuk memverifikasi dukungan HTTP/2. -
Debug dengan netcat: Di satu terminal:
nc -l 1234
Di terminal lain:curl http://127.0.0.1:1234
Ini memungkinkan Anda melihat secara tepat apa yang dikirim oleh curl, berguna untuk debugging payload.
Perintah lanjutan ini menyediakan kemampuan debugging yang kuat, memungkinkan pengembang memeriksa berbagai aspek komunikasi HTTP dan memecahkan masalah kompleks.
Penggunaan Umum cURL
curl adalah alat baris perintah yang sangat fleksibel dengan berbagai aplikasi. Berikut adalah beberapa penggunaan umum untuk curl:
Interaksi Web
- Unduh file: curl dapat mengunduh file dari URL.
- Web scraping: curl dapat mengambil konten halaman web untuk tujuan scraping.
- Menguji situs web: curl berguna untuk memeriksa apakah situs web dapat diakses dan mengambil kontennya.
Interaksi API
- Mengirim permintaan API: curl mendukung berbagai metode HTTP (GET, POST, PUT, DELETE) untuk berinteraksi dengan API.
- Menguji endpoint API: curl menyediakan cara cepat untuk menguji dan memperbaiki endpoint API tanpa memerlukan klien API khusus.
Pemecahan Masalah Jaringan
- Memeriksa koneksi: curl dapat digunakan untuk memverifikasi koneksi jaringan dan memecahkan masalah.
- Menguji DNS: curl memungkinkan memaksa penggunaan server DNS tertentu untuk memecahkan masalah terkait DNS.
- Memeriksa header: curl dapat menampilkan header HTTP, yang berguna untuk debugging.
Transfer Data
- Operasi FTP: curl mendukung transfer file menggunakan File Transfer Protocol (FTP).
- Interaksi SMTP: curl dapat digunakan untuk mengirim email melalui Simple Mail Transfer Protocol (SMTP).
Keamanan dan Otentikasi
- Koneksi SSL: curl mendukung koneksi aman menggunakan SSL/TLS.
- Otentikasi: curl dapat menangani berbagai metode otentikasi, termasuk otentikasi dasar dan sertifikat klien.
Pengembangan dan Debugging
- Meniru berbagai metode HTTP: curl memungkinkan pengembang menguji berbagai metode HTTP dengan mudah.
- Log rinci: Mode rinci curl menyediakan informasi rinci tentang siklus permintaan-respons, membantu dalam debugging.
Penggunaan umum ini menunjukkan fleksibilitas curl sebagai alat untuk interaksi web, pengujian API, pemecahan masalah jaringan, dan tugas pengembangan.
Pengujian Kinerja Situs Web dengan cURL
curl adalah alat yang kuat untuk menguji kinerja situs web. Berikut adalah cara Anda dapat menggunakan curl untuk mengukur berbagai aspek kecepatan muat situs web:
Pengujian Kinerja Dasar
Untuk mendapatkan ukuran sederhana waktu muat situs web, gunakan perintah berikut:
curl -o /dev/null -s -w "Total Time: %{time_total}s\n" "https://example.com"
Perintah ini akan menghasilkan waktu total yang dibutuhkan untuk mengambil situs web[2].
Metrik Kinerja yang Lebih Rinci
Untuk analisis yang lebih menyeluruh, Anda dapat menggunakan curl untuk mengukur berbagai metrik kinerja:
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://example.com
Perintah ini memberikan penjelasan tentang berbagai tahap dalam proses muat, termasuk waktu pencarian DNS, waktu koneksi, dan waktu total[1].
Metrik Lanjutan
Untuk analisis yang lebih rinci, Anda dapat menyertakan metrik tambahan:
curl -o /dev/null -w "HTTP Version: %{http_version}\nPage Size: %{size_download} bytes\nResponse Code: %{response_code}\nDNS Lookup: %{time_namelookup} sec\nConnect Time: %{time_connect} sec\nTime to First Byte: %{time_starttransfer} sec\nTotal Time: %{time_total} sec\n" -s https://example.com
Perintah ini mencakup informasi tentang versi HTTP, ukuran halaman, dan kode respons[3].
Benchmarking Permintaan Berulang
Untuk menguji konsistensi atau memantau kinerja seiring waktu, Anda dapat menggunakan loop untuk membuat beberapa permintaan:
for i in {1..5}; do curl -o /dev/null -s -w "Request $i Total Time: %{time_total}\n" https://example.com; done
Ini akan menjalankan uji coba lima kali dan menampilkan waktu total untuk setiap permintaan[3].
Membuat Skrip Pengujian Kinerja
Anda dapat membuat skrip bash sederhana untuk mengotomatisasi pengujian ini dan menyimpan hasilnya:
#!/bin/bash
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null URL > webspeedtest_"$(date)"
Ganti “URL” dengan situs web yang ingin Anda uji. Skrip ini akan menyimpan hasilnya dalam file yang diberi tanda tanggal[5].
Dengan menggunakan perintah curl dan skrip ini, Anda dapat secara efektif mengukur dan memantau kinerja situs web, membantu Anda mengidentifikasi potensi bottleneck dan mengoptimalkan waktu muat.