Một số máy chủ mà tôi đã xử lý sẽ trả về HTTP 200 cho các yêu cầu mà khách hàng phải xem xét là thất bại, với nội dung như 'thành công: sai' trong cơ thể.
Đây dường như không phải là một triển khai mã HTTP thích hợp, đặc biệt trong các trường hợp xác thực không thành công. Tôi đã đọc các mã lỗi HTTP khá ngắn gọn được tóm tắt là, '4xx' chỉ ra rằng yêu cầu không nên được thực hiện lại cho đến khi thay đổi, trong khi '5xx' chỉ ra rằng yêu cầu có thể hoặc không thể hợp lệ và có thể được thử lại, nhưng không thành công. Trong trường hợp này 200: đăng nhập thất bại hoặc 200: không thể tìm thấy tệp đó hoặc 200: thiếu tham số x, chắc chắn có vẻ sai.
Mặt khác, tôi có thể thấy đối số được đưa ra rằng '4xx' chỉ nên chỉ ra vấn đề cấu trúc với yêu cầu. Vì vậy, điều đó là đúng khi trả lại 200: người dùng / mật khẩu xấu thay vì trái phép 401 vì khách hàng được phép thực hiện yêu cầu, nhưng điều đó xảy ra là không chính xác. Đối số này có thể được tóm tắt là, nếu máy chủ có thể xử lý yêu cầu và đưa ra quyết định, mã phản hồi phải là 200 và tùy thuộc vào máy khách để kiểm tra thông tin thêm.
Về cơ bản, đây dường như là một vấn đề ưu tiên. Nhưng điều đó là không thỏa mãn, vì vậy nếu bất cứ ai có lý do tại sao một trong những mô hình này là chính xác hơn, tôi muốn biết.
success: false
ngụ ý rằng yêu cầu thất bại và bạn biết điều đó. Đó phải là 500. Một cái gì đó giống như tên người dùng / mật khẩu xấu của bạn sẽ là một số 401. Đây không phải là điều mơ hồ.