17

Tôi đọc What HTTP status response code should I use if the request is missing a required parameter? nhưng nó không đặc biệt hỏi về tiêu đề và dường như không có sự đồng thuận.Mã trạng thái HTTP thích hợp nhất để trả lại nếu thiếu tiêu đề bắt buộc là gì?

Ngữ cảnh của câu hỏi này giả định xác thực thành công. Tôi hiện đang ủng hộ hoặc là 400 (mặc dù điều đó không cảm thấy đúng vì đây không thực sự là một trường hợp "cú pháp không đúng định dạng") hoặc 403. Mô tả của 403:

Máy chủ hiểu yêu cầu, nhưng từ chối hoàn thành nó. Ủy quyền sẽ không giúp và yêu cầu KHÔNG được lặp lại. Nếu phương thức yêu cầu không phải là HEAD và máy chủ muốn công khai lý do yêu cầu không được đáp ứng, nó NÊN mô tả lý do để từ chối trong thực thể.

Điều này có ý nghĩa nhất đối với tôi.

Ai đó có thể vui lòng khai sáng cho tôi không? Cảm ơn.

Trả lời

28

400 Yêu cầu không hợp lệ

Đó là lỗi người dùng trong yêu cầu. Không giống với 403, khách hàng nên được phép lặp lại yêu cầu của họ, nhưng chỉ sau khi sửa đổi:

10.4.1 400 Bad Request Yêu cầu không thể được hiểu bởi máy chủ do bị thay đổi cú pháp. Khách hàng KHÔNG NÊN lặp lại yêu cầu mà không sửa đổi.

Sửa

Như Mark Reed chỉ ra trong các ý kiến, một 403 nói: "Không có gì sai với những gì bạn đã gửi cho tôi. Bạn có uỷ quyền hợp lý và cú pháp là hợp lệ là. Tôi chỉ không muốn làm những gì bạn hỏi. "

Phần bạn in đậm chỉ đơn giản nói, nếu máy chủ chọn, nó có thể cho khách hàng biết chính xác lý do tại sao nó không muốn thực hiện yêu cầu.

+1

Chắc chắn 400. Nếu có bất kỳ điều gì sai trái với yêu cầu không phụ thuộc vào trạng thái máy chủ, đó là 400. Nếu điều duy nhất sai ở phía máy chủ ("Đó là một yêu cầu hoàn hảo đến mức bạn biết, nhưng tôi không có tâm trạng "), sau đó bạn sử dụng 403. –

+0

Cảm ơn bạn đã phản hồi, các bạn. –

+0

Còn khoảng 412 (điều kiện tiên quyết thất bại) thì sao? –

Các vấn đề liên quan