Phản hồi máy chủ 202 Accepted
Pháp điển về mã trạng thái HTTP 202
Mã trạng thái HTTP 202 (Accepted) cho biết rằng yêu cầu của khách hàng đã được chấp nhận để xử lý, nhưng chưa hoàn tất. Điều này rất hữu ích cho những hoạt động bất đồng bộ, nơi mà kết quả có thể được truy cập sau. Trong bài viết này, chúng ta sẽ xem xét các ví dụ thực tiễn về việc sử dụng mã trạng thái này, cũng như các cách sửa lỗi nếu mã lỗi xảy ra.
Định nghĩa và mục đích
Mã trạng thái 202 cho biết rằng yêu cầu đã được tiếp nhận, nhưng không đảm bảo rằng quá trình xử lý đã hoàn tất. Mã này khác với một số mã khác như 200 (OK) và 204 (No Content) ở chỗ nó không chỉ ra rằng yêu cầu đã được hoàn thành thành công.
So sánh với các mã trạng thái khác
Mã trạng thái | Mô tả |
---|---|
200 | Yêu cầu đã thành công và trả về nội dung. |
204 | Yêu cầu đã thành công nhưng không có nội dung trả về. |
202 | Yêu cầu đã được chấp nhận nhưng chưa hoàn tất. |
Ví dụ thực tiễn về việc sử dụng mã trạng thái 202
Ví dụ 1: Gửi tập tin lớn lên máy chủ
Khi một người dùng cố gắng tải lên một tập tin lớn, máy chủ có thể mất một khoảng thời gian để xử lý yêu cầu này. Trong trường hợp này, máy chủ có thể trả về mã trạng thái 202 để thông báo rằng yêu cầu đang được xử lý.
Ví dụ 2: Xử lý các tác vụ nền
Khi một khách hàng khởi tạo một tác vụ bất đồng bộ, như là xử lý dữ liệu, máy chủ có thể gửi trả mã 202 và yêu cầu khách hàng kiểm tra trạng thái tác vụ sau. Điều này cho phép khách hàng tiếp tục làm việc trong khi tác vụ đang được xử lý.
Ví dụ 3: Tương tác với API bên ngoài
Khi một API nhận yêu cầu tạo tài nguyên mà cần thời gian xử lý, nó có thể trả về mã 202. Khách hàng sẽ nhận được thông tin rằng yêu cầu đã được chấp nhận và có thể kiểm tra sau để biết trạng thái.
Lỗi khi sử dụng mã trạng thái 202
Các nguyên nhân có thể gây ra lỗi
- Thời gian xử lý quá dài dẫn đến timeout.
- Yêu cầu không hợp lệ hoặc không đầy đủ thông tin.
- Các vấn đề về kết nối mạng giữa máy khách và máy chủ.
Cách xử lý đúng phản hồi với mã 202
Khi nhận được mã trạng thái 202, khách hàng nên chuẩn bị sẵn sàng để kiểm tra trạng thái của yêu cầu để đảm bảo rằng nó được xử lý thành công. Điều này có thể bao gồm việc gửi yêu cầu GET đến một endpoint để lấy thông tin cập nhật.
Sửa lỗi trên các ngôn ngữ lập trình khác nhau
Ví dụ trên JavaScript
Khi xử lý phản hồi với mã 202, bạn có thể sử dụng fetch API để theo dõi trạng thái:
fetch('/api/upload', { method: 'POST', body: file })
.then(response => {
if (response.status === 202) {
checkStatus();
}
});
Ví dụ trên Python
Sử dụng thư viện requests để làm việc với API:
response = requests.post('https://api.example.com/resource', data=data)
if response.status_code == 202:
status_response = requests.get('https://api.example.com/resource/status')
# Xử lý trạng thái
Ví dụ trên Java
Sử dụng HttpClient để gửi yêu cầu:
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.example.com/resource"))
.POST(HttpRequest.BodyPublishers.ofString(data))
.build();
HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 202) {
// Kiểm tra trạng thái
Ví dụ về kịch bản nơi mã trạng thái 202 có thể hữu ích
- Ứng dụng tải nội dung lên máy chủ.
- Hệ thống quản lý dự án với các tác vụ bất đồng bộ.
- Các cửa hàng trực tuyến với quy trình xử lý đơn hàng.
Khuyến nghị khi sử dụng mã trạng thái 202
Mã trạng thái 202 nên được sử dụng khi bạn cần thông báo rằng yêu cầu đang được xử lý nhưng không có kết quả ngay lập tức. Để tránh nhầm lẫn, hãy đảm bảo rằng người dùng hoặc khách hàng hiểu rằng kết quả sẽ có sau đó.