- cURL / curl
- Alat baris perintah sumber terbuka dan library libcurl, digunakan untuk mengirim permintaan protokol HTTP/HTTPS/FTP dll. melalui URL di baris perintah, adalah alat yang paling sering digunakan developer untuk debug API.
- HTTP method
- Tindakan permintaan HTTP, yang umum meliputi GET (baca), POST (buat), PUT (pembaruan menyeluruh), PATCH (pembaruan sebagian), DELETE (hapus), HEAD (ambil header), OPTIONS (kueri kemampuan server).
- Header permintaan
- Pasangan kunci-nilai metadata dalam permintaan HTTP, seperti Content-Type, Authorization, User-Agent, Cookie, Accept, dll., ditentukan dalam curl dengan -H/--header.
- Isi permintaan (Body)
- Bagian data dari permintaan HTTP, sering digunakan dalam POST/PUT/PATCH, ditentukan dalam curl dengan -d/--data/--data-binary/-F, format umum meliputi JSON, form-urlencoded, multipart/form-data.
- Content-Type
- Header permintaan/respons, menunjukkan tipe media dari body. application/json berarti JSON, application/x-www-form-urlencoded berarti form encoded URL, multipart/form-data berarti form unggahan file.
- Basic Auth
- Autentikasi dasar HTTP, mengirimkan nama pengguna dan kata sandi melalui header Authorization: Basic base64(user:pass), ditentukan dalam curl dengan -u user:pass.
- Bearer Token
- Metode autentikasi berbasis token, diteruskan melalui header Authorization: Bearer <token>, sering digunakan dalam JWT/OAuth2.
- User-Agent
- Header permintaan, mengidentifikasi jenis client (browser/crawler/skrip), curl default mengirim "curl/namaversi", banyak situs memblokir UA non-browser, sering digunakan -A untuk menentukan.
- Cookie
- Pasangan kunci-nilai yang dikirim server melalui Set-Cookie dan dikirim kembali browser melalui header Cookie dalam permintaan selanjutnya, digunakan untuk memelihara sesi. curl -b mengirim Cookie, -c menyimpan Cookie.
- Referer
- Header permintaan, menunjukkan URL halaman asal permintaan saat ini, beberapa pemeriksaan anti-hotlink/CSRF akan memeriksa. Diatur dengan curl -e.
- Pengalihan (3xx)
- Saat server mengembalikan kode status 301/302/303/307/308, memberitahu browser untuk mengalihkan ke URL baru. curl tidak mengikuti secara default, tambahkan -L/--location untuk mengikuti.
- --compressed
- Opsi curl, otomatis menambahkan header Accept-Encoding: deflate, gzip dan otomatis mendekompresi respons. Jika tidak diatur, respons mungkin berupa data terkompresi yang tidak dapat dibaca.
- -k/--insecure
- Opsi curl, melewati verifikasi sertifikat HTTPS, hanya digunakan untuk lingkungan pengujian sertifikat self-signed, dilarang digunakan di lingkungan production.
- fetch API
- API permintaan HTTP JavaScript asli browser, mengembalikan Promise, didukung di semua browser modern.
- Axios
- Library HTTP client populer berbasis Promise, dapat digunakan di browser dan Node.js, serialisasi JSON otomatis, interceptor, pembatalan timeout.
- OkHttp
- Library HTTP client Java/Android dari perusahaan Square, performa tinggi, mendukung HTTP/2, connection pooling, GZIP transparan.
- HttpClient (.NET)
- HTTP client yang direkomendasikan untuk C#/.NET, dalam namespace System.Net.Http, adalah API standar .NET Core/.NET 5+.
- Invoke-RestMethod
- Cmdlet permintaan HTTP bawaan PowerShell 3.0+, otomatis memparsing respons JSON/XML menjadi objek PowerShell.