Apa itu CURL ?
CURL adalah alat untuk transfer data. Ini juga tersedia sebagai perpustakaan untuk pengembang dan sebagai CLI untuk kasus penggunaan berbasis terminal. Keduanya memiliki mesin yang sama di dalamnya (Kenyataannya adalah bahwa alat CLI hanyalah program yang menggunakan perpustakaan di bawah kap).
CURL bekerja dengan setiap protokol yang mungkin Anda gunakan. Buka situs ini untuk memeriksa apakah CURL berfungsi dengan protokol target Anda atau tidak.
Apa yang dapat dilakukan CURL?
Hmm… Segala sesuatu yang berhubungan dengan transfer data. Setiap orang pasti pernah menggunakan browser. Bahkan sekarang, Anda membaca artikel ini melalui browser Anda. Apa yang dilakukan browser, ia meminta halaman dan mendapatkannya sebagai tanggapan. Itu bisa menulis dan membaca cookie. Dan kemudian merender (menampilkan konten, gambar, dan mengeksekusi skrip JS).
CURL dapat melakukan semua hal yang dilakukan browser kecuali rendering bagian terakhir karena tidak terkait dengan transfer data.
Sebagai penutup, CURL dapat mengunduh halaman HTML, mengisi formulir HTML dan mengirimkannya, mengunduh file dari server FTP/HTTP dan mengunggah file ke cookie yang sama dan membaca/menulis.
Ini menjadikannya alat yang sangat baik untuk digunakan dalam skrip, debugging, dan analisis forensik, dll.
Contoh perintah ikal
Mari kita lihat apa yang dapat Anda lakukan dengan Curl.
1. Dapatkan tanggapan dari server
Segala sesuatu dari server adalah respons terhadap permintaan. Jadi mendapatkan halaman HTML sama dengan mendownload file.
Untuk mendapatkan respons HTML dari http://info.cern.c,
curl http://info.cern.ch/
Untuk mendapatkan daftar posting sebagai tanggapan dari server ( https://jsonplaceholder.typicode.com/posts),
curl https://jsonplaceholder.typicode.com/posts
Karena kami tahu cara mendapatkan respons dari server, Anda dapat mengunduh file (misalnya logo Google).
curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
Perintah di atas akan membuang data gambar biner yang tidak dapat Anda lihat di terminal. Anda perlu menyimpannya dan kemudian menggunakan penampil foto untuk melihatnya.
Perhatikan bahwa berbagai tanda opsi dapat ditempatkan di mana saja pada perintah alih-alih urutan yang ketat. Jadi jangan khawatir jika Anda menempatkan opsi apa pun di bagian terakhir sementara contoh memiliki tanda di awal.
2. Simpan file dengan nama file default
Setiap file yang disajikan di internet memiliki nama file. Untuk menggunakan nama file yang sama dengan nama file yang diunduh, gunakan tanda -O.
curl -O http://www.google.com/robots.txt
3. Simpan file dengan nama khusus
Untuk menyimpan nama file dengan nama kustom Anda sendiri, gunakan tanda -o diikuti (secara ketat) dengan nama kustom.
curl -O http://www.google.com/robots.txt googleRobots.txt
4. Unduh banyak file
Untuk mengunduh banyak file, pisahkan dengan spasi.
curl url1 url2 url3
Jika Anda ingin menggunakan tanda -O untuk semua URL, gunakan
curl url1 url2 url3 -O -O -O
Solusi yang sama harus dilakukan untuk bendera apa pun. Ini karena kemunculan pertama dari tanda tertentu adalah untuk URL pertama, tanda kedua untuk URL kedua dan seterusnya.
5. Unduh berbagai file
curl memiliki kemampuan bawaan untuk mengunduh berbagai file dari server. Hal ini dapat diilustrasikan dari contoh berikut.
curl http://www.google.com/logo/logo[1-9].png
Perintah di atas mengunduh file dari logo1.png, logo2.png, logo3.png dan hingga logo9.png.
6. Unduh file hanya jika terbaru
Untuk mengunduh file hanya jika waktu modifikasi file lebih lama dari waktu yang ditentukan.
curl url -z "DD MMM YY MM:HH:SS"
7. Lanjutkan Mengunduh
Jika Anda telah mentransfer sebagian file, Anda dapat melanjutkan transfer dengan menggunakan flag -C. Offset dari mana transfer perlu dilanjutkan harus diteruskan sebagai parameter ke flag -C.
curl -C 1024 http://seeni.linuxhandbook.org/files/largeFile.mpv -O
8. Unggah file
Untuk mengunggah file ke server, seseorang perlu menggunakan flag -T diikuti dengan jalur file di sistem lokal Anda.
curl -T uploadFile.txt http://upload.linuxhandbook.org/files
9. Hapus file
Untuk menghapus file bernama deleteFile.txt di server, seseorang dapat menggunakan flag -X yang ditujukan untuk kata kerja/metode HTTP apa pun (seperti GET, POST, PUT, DELETE, PATCH). Sebagian besar server FTP akan mengonfigurasi metode DELETE jika tidak semua metode HTTP lanjutan.
curl -X DELETE http://upload.linuxhandbook.org/files/deleteFile.txt
Anda juga dapat memodifikasi perintah di atas untuk metode HTTP apa pun untuk melakukan tugas yang sesuai. Misalnya, jika server Anda mengizinkan metode TRUNCATE ( ini adalah metode HTTP yang dibuat-buat, bukan metode standar) yang hanya menghapus konten dalam file dan bukan file, seseorang dapat menggunakan perintah yang mirip dengan yang di bawah ini.
curl -X TRUNCATE http://upload.linuxhandbook.org/files/mysql.dump
Disebutkan di atas adalah kegunaan utama curl. Tetapi mungkin ada kesulitan yang perlu diatasi seperti pengalihan, otentikasi pengguna, sertifikat SSL, dll., Kami dapat menyebutnya add-on karena hanya opsional tetapi tetap penting untuk tujuan tertentu. Mari kita lihat beberapa add-on tersebut dan cara menanganinya dengan curl di bagian selanjutnya.
10. Hindari pengalihan
Saat Anda meminta http://www.google.com , Anda hanya akan disajikan laman regional seperti www.google.co.in. Ini dilakukan dengan bantuan pengalihan (paket HTTP dengan kode status dalam kisaran 300-399).
Anda dapat menghindari pengalihan dengan opsi L.
curl -L http://www.google.com
11. Otentikasi
Ketika server dikonfigurasi untuk melayani hanya individu tertentu dengan kredensial, mereka akan diberikan nama pengguna dan kata sandi. Seseorang dapat melakukan login dengan bantuan flag -u.
curl -u username:password http://seeni.linuxhandbook.org/files/tasks.txt
12. Batasi transfer data
Jika Anda ingin menerapkan batas transfer data, gunakan flag –limit-rate. Perintah berikut mencoba mengunduh file dengan batas kecepatan 10K.
curl --limit-rate 10K http://seeni.linuxhandbook.org/files/logoDetails.tgz
13. Tampilkan/Sembunyikan Status transfer
Jika respons dialihkan dari terminal seperti mengunduh, mengunggah, lalu curl secara otomatis menunjukkan status/pengukur kemajuan untuk transfer.
Jika Anda tidak ingin melihat pengukur kemajuan, cukup tambahkan perintah dengan tanda -s. Kemajuan tidak akan ditampilkan untuk respons yang diarahkan ke terminal.
14. Abaikan sertifikat SSL
Apakah Anda ingat situasi di mana Anda perlu memberikan pengecualian sertifikat keamanan untuk mengunjungi beberapa situs web? Jika Anda mempercayai sumbernya dan ingin melakukan transfer data, Anda dapat mengabaikan validasi sertifikat SSL dengan menggunakan tanda -k.
curl -k https://notSoSecure.org/files/logoDetails.tgz
15. Dapatkan Informasi Header juga
Untuk menampilkan informasi header bersama dengan data yang ditransfer, gunakan tanda -i.
curl -i http://www.google.com/robots.txt
16. Dapatkan informasi Header Saja
Jika Anda hanya menginginkan header dan bukan data, gunakan tanda -I
curl -I http://www.google.com/robots.txt
17. Ubah Agen Pengguna
Beberapa situs web dan server tidak mengizinkan jenis perangkat tertentu untuk mengakses sistem mereka. Tapi bagaimana mereka tahu bahwa kita menggunakan jenis perangkat tertentu? Ini karena bidang header HTTP Agen-Pengguna. Kami dapat mengubah Agen Pengguna ini dengan tanda -A.
curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png
18. Mengirim data ke Server
Jika server membutuhkan beberapa data seperti token atau kunci API, gunakan flag -d untuk mengirim data. Data yang perlu dikirim harus mengikuti tanda pada perintah. Seseorang dapat menggunakan "&" untuk menggabungkan banyak data. Ini biasanya dilakukan oleh permintaan GET dan POST di browser. Ini adalah salah satu cara untuk mengirimkan informasi formulir Anda.
curl -d "token=34343abvfgh&name='seeni'" http://api.restful.org/getcontent
19. Menulis Cookie ke File
Cookie adalah beberapa informasi kecil yang memungkinkan pemeliharaan sesi dengan protokol HTTP stateless. Jika Anda ingin tahu lebih banyak tentang Cookie, lihat sumber yang bagus ini.
Untuk menulis cookie ke file, tanda -c diikuti dengan nama file cookie harus digunakan.
curl -c googleCookie.txt http://www.google.com/files
20. Membaca Cookie dari File
Untuk membaca cookie dari file, tanda -b diikuti dengan nama file cookie dapat digunakan.
curl -b googleCookie.txt http://www.google.com/files
Perhatikan bahwa -b flag hanya membaca cookie dari file. Jadi jika server mengirim ulang cookie lain, Anda mungkin perlu menggunakan opsi -c untuk menulisnya.
21. Mulai Sesi baru
Jika Anda ingin memulai sesi baru dengan membuang cookie, gunakan tanda -j. Ini memulai sesi baru bahkan jika Anda telah menyediakan file cookie untuk dibaca dengan tanda -b.
curl -b googleCookie.txt http://www.google.com/files -j
Selamat! Anda berhasil sampai akhir. Jika Anda merasa artikel ini bermanfaat, bagikan dengan teman Anda dan ikuti kami di media sosial. Jika Anda memiliki saran tentang artikel ini atau topik lainnya, jangan ragu untuk menyampaikannya di bawah.