Tra cứu HTTP & MIME
Tra cứu nhanh, có tìm kiếm, các mã trạng thái HTTP, phương thức request, header phổ biến và loại MIME (content type) — khỏi rời app để kiểm tra 422 nghĩa là gì, PUT có idempotent không hay loại của .webp.
Các bước sử dụng
- Chọn tab Mã trạng thái, Phương thức, Header hoặc Loại MIME.
- Gõ vào ô tìm kiếm để lọc theo mã, tên, header hoặc phần mở rộng.
- Đọc ý nghĩa, đặc tính của phương thức hoặc chuỗi MIME chính xác, và bấm liên kết ở cột Đặc tả để mở đúng mục RFC định nghĩa nó.
Mẹo
- Mã trạng thái được tô màu: 2xx xanh (thành công), 3xx xanh dương (chuyển hướng), 4xx cam (lỗi client), 5xx đỏ (lỗi server).
- Tab Phương thức trả lời những câu hỏi quyết định thiết kế API: An toàn (chỉ đọc), Idempotent (gửi lại được), Cache được, và Body của request có ý nghĩa hay không.
- "Không có ý nghĩa xác định" với body của GET hay DELETE là đúng cách nói của đặc tả: body không bị cấm, nhưng server và proxy có thể bỏ qua hoặc từ chối nó, nên đừng dựa vào.
- Tab Header gắn thẻ mỗi header theo bên gửi (Request, Response hoặc Cả hai). Hãy tìm theo vấn đề thay vì tên — "cors", "cache" hay "rate limit" đều ra đúng header.
- Dùng chuỗi MIME cho header
Content-Typevà tải tệp lên. - Tìm kiếm khớp tất cả — thử "redirect", "json", "preflight" hay "429".
Câu hỏi thường gặp
401 và 403 khác nhau thế nào?
401 nghĩa là chưa xác thực (hãy đăng nhập); 403 nghĩa là đã xác thực nhưng không được phép.
Vì sao POST và PATCH ghi "Có điều kiện" ở cột cache?
Response của chúng chỉ được cache khi server gửi thông tin độ mới rõ ràng (Cache-Control: max-age hoặc Expires) cùng với header Content-Location. Trên thực tế gần như không bộ cache nào lưu chúng.
PATCH có idempotent không?
Theo định nghĩa thì không. Một JSON Merge Patch chỉ gán giá trị cho các trường thì gần như idempotent, nhưng một patch kiểu "thêm vào cuối danh sách" thì không, nên client không được tự động gửi lại PATCH như với PUT hay DELETE.
MIME nào cho JavaScript?
text/javascript là chuẩn hiện tại cho tệp .js và .mjs.