- cURL / curl
- Công cụ dòng lệnh mã nguồn mở và thư viện libcurl, dùng để gửi yêu cầu giao thức HTTP/HTTPS/FTP v.v. qua URL trên dòng lệnh, là công cụ nhà phát triển dùng phổ biến nhất để debug API.
- HTTP method
- Hành động của yêu cầu HTTP, phổ biến gồm GET (đọc), POST (tạo), PUT (cập nhật toàn bộ), PATCH (cập nhật một phần), DELETE (xóa), HEAD (lấy tiêu đề), OPTIONS (truy vấn khả năng máy chủ).
- Tiêu đề yêu cầu (Header)
- Cặp khóa-giá trị siêu dữ liệu trong yêu cầu HTTP, như Content-Type, Authorization, User-Agent, Cookie, Accept, v.v., được chỉ định trong curl bằng -H/--header.
- Nội dung yêu cầu (Body)
- Phần dữ liệu của yêu cầu HTTP, thường dùng trong POST/PUT/PATCH, được chỉ định trong curl bằng -d/--data/--data-binary/-F, các định dạng phổ biến gồm JSON, form-urlencoded, multipart/form-data.
- Content-Type
- Tiêu đề yêu cầu/phản hồi, chỉ định loại media của body. application/json nghĩa là JSON, application/x-www-form-urlencoded nghĩa là form mã hóa URL, multipart/form-data nghĩa là form tải tệp lên.
- Basic Auth
- Xác thực cơ bản HTTP, truyền tên người dùng và mật khẩu qua tiêu đề Authorization: Basic base64(user:pass), được chỉ định trong curl bằng -u user:pass.
- Bearer Token
- Phương thức xác thực dựa trên token, truyền qua tiêu đề Authorization: Bearer <token>, thường dùng trong JWT/OAuth2.
- User-Agent
- Tiêu đề yêu cầu, xác định loại client (trình duyệt/crawler/script), curl mặc định gửi "curl/phiên bản", nhiều trang web chặn UA không phải trình duyệt, thường dùng -A để chỉ định.
- Cookie
- Cặp khóa-giá trị mà máy chủ gửi xuống qua Set-Cookie và trình duyệt gửi lại qua tiêu đề Cookie trong các yêu cầu sau, dùng để duy trì phiên làm việc. curl -b gửi Cookie, -c lưu Cookie.
- Referer
- Tiêu đề yêu cầu, cho biết URL của trang nguồn của yêu cầu hiện tại, một số kiểm tra chống liên kết trực tiếp/CSRF sẽ kiểm tra. Đặt bằng curl -e.
- Chuyển hướng (3xx)
- Khi máy chủ trả về mã trạng thái 301/302/303/307/308, báo trình duyệt chuyển hướng đến URL mới. curl không theo dõi mặc định, thêm -L/--location để theo dõi.
- --compressed
- Tùy chọn curl, tự động thêm tiêu đề Accept-Encoding: deflate, gzip và tự động giải nén phản hồi. Nếu không đặt, phản hồi có thể là dữ liệu nén không đọc được.
- -k/--insecure
- Tùy chọn curl, bỏ qua xác minh chứng chỉ HTTPS, chỉ dùng cho môi trường kiểm thử chứng chỉ tự ký, cấm sử dụng trong môi trường production.
- fetch API
- API yêu cầu HTTP JavaScript gốc của trình duyệt, trả về Promise, được hỗ trợ trên tất cả trình duyệt hiện đại.
- Axios
- Thư viện HTTP client phổ biến dựa trên Promise, dùng chung cho trình duyệt và Node.js, tự động tuần tự hóa JSON, interceptor, hủy timeout.
- OkHttp
- Thư viện HTTP client Java/Android của công ty Square, hiệu năng cao, hỗ trợ HTTP/2, kết nối nối, GZIP trong suốt.
- HttpClient (.NET)
- HTTP client được khuyến nghị cho C#/.NET, trong không gian tên System.Net.Http, là API chuẩn của .NET Core/.NET 5+.
- Invoke-RestMethod
- Cmdlet yêu cầu HTTP tích hợp sẵn trong PowerShell 3.0+, tự động phân tích phản hồi JSON/XML thành đối tượng PowerShell.