"Vấn đề", chẳng hạn như, nằm ở phía máy chủ: máy khách đã thực hiện một yêu cầu được hình thành tốt, nhưng máy chủ không thể đáp ứng. Vì vậy, tôi nghiêng về "Lỗi máy chủ", mã trạng thái 5xx.
Quoth RFC 7231 (tiêu chuẩn HTTP hiện tại, đã nhấn mạnh thêm):
Lớp mã trạng thái 5xx (Lỗi máy chủ) cho biết rằng máy chủ biết rằng nó đã bị lỗi hoặc không có khả năng thực hiện phương thức được yêu cầu . Ngoại trừ khi trả lời yêu cầu CHÍNH, máy chủ NÊN gửi một đại diện có giải thích về tình huống lỗi và cho dù đó là tình trạng tạm thời hay vĩnh viễn.
Ghi chú
- "bị lỗi hoặc không có khả năng thực hiện yêu cầu": mặc dù tiêu đề "Lỗi máy chủ" của họ, chúng không chỉ dành cho lỗi máy chủ.
- " tạm thời hoặc vĩnh viễn": các mã này phù hợp với các tài nguyên tạm thời không có sẵn, như của bạn.
Trong số các mã có sẵn, tôi muốn nói 503, "Dịch vụ không khả dụng" là phù hợp nhất:
Mã trạng thái 503 (Dịch vụ không khả dụng) cho biết rằng máy chủ hiện không thể xử lý yêu cầu do quá tải tạm thời hoặc bảo trì theo lịch trình, có thể sẽ được giảm bớt sau một số chậm trễ. Máy chủ CÓ THỂ gửi trường tiêu đề Thử lại sau ... để đề xuất một lượng thời gian thích hợp để khách hàng chờ đợi trước khi thử lại yêu cầu.
Ghi chú:
- "Có khả năng được giảm bớt sau một số chậm trễ": đúng với trường hợp của bạn.
- "Quá tải tạm thời": không đúng về mặt giáo dục cho trường hợp của bạn. Nhưng, có thể tranh cãi, máy chủ của bạn nhanh hơn nhiều, việc xử lý hàng loạt đã được thực hiện khi khách hàng thực hiện yêu cầu, vì vậy đó là một loại "quá tải": máy khách đang yêu cầu tài nguyên nhanh hơn máy chủ có thể thực hiện chúng có sẵn.
- Thử lại là phù hợp với dịch vụ của bạn, vì vậy câu trả lời của bạn phải bao gồm một
Retry-After
giá trị. Bạn có thể cung cấp dưới dạng giá trị thời gian hoàn thành ước tính của lần thực hiện tiếp theo của quy trình lô hoặc khoảng thời gian thực hiện của quy trình lô.
Xác định mã trạng thái 5xx của riêng bạn (ví dụ 591), mặc dù được phép , sẽ có ngữ nghĩa sai:
khách hàng PHẢI hiểu lớp của bất kỳ mã trạng thái nào, như được chỉ ra bởi chữ số đầu tiên và coi mã trạng thái không được nhận dạng là tương đương với mã trạng thái x00 của lớp đó
Khách hàng sẽ coi mã trạng thái của riêng bạn là 500, "Lỗi máy chủ nội bộ" , điều này không đúng.