Nói chung, mã phản hồi 5xx cho biết lỗi không có lập trình, chẳng hạn như lỗi kết nối cơ sở dữ liệu hoặc một số lỗi phụ thuộc hệ thống/thư viện khác. Trong nhiều trường hợp, khách hàng có thể gửi lại yêu cầu tương tự trong tương lai và hy vọng nó sẽ thành công. Có, một số khung công tác web sẽ phản hồi với mã 5xx, nhưng thường là kết quả của các lỗi trong mã và khung công tác quá trừu tượng để biết điều gì đã xảy ra, vì vậy nó mặc định là loại phản hồi này; ví dụ đó, tuy nhiên, không có nghĩa là chúng ta nên có thói quen trả lại mã 5xx do hành vi có lập trình không liên quan đến hệ thống quá trình.Có nhiều mã phản hồi được xác định rõ ràng phù hợp hơn mã 5xx. Không thể phân tích cú pháp/xác thực một đầu vào cụ thể không phải là phản hồi 5xx vì mã có thể đáp ứng một phản hồi phù hợp hơn mà không để khách hàng nghĩ rằng họ có thể gửi lại cùng một yêu cầu, khi thực tế, họ không thể.
Để rõ ràng, nếu lỗi mà máy chủ gặp phải do đầu vào CLIENT, thì đây rõ ràng là lỗi CLIENT và phải được xử lý bằng mã phản hồi 4xx. Kỳ vọng là khách hàng sẽ sửa lỗi trong yêu cầu của họ và gửi lại. Tuy nhiên, hoàn toàn có thể chấp nhận được bất kỳ lỗi quá trình nào và diễn giải chúng như một phản ứng 5xx, nhưng lưu ý rằng bạn cũng nên bao gồm thêm thông tin trong phản hồi để cho biết chính xác những gì không thành công; và thậm chí tốt hơn nếu bạn có thể bao gồm thời gian SLA để giải quyết.
Tôi không nghĩ đó là cách hay để diễn giải, "lỗi không mong muốn" dưới dạng lỗi 5xx do lỗi xảy ra.
Đây là một màn hình cảnh báo phổ biến để bắt đầu cảnh báo về 5xx loại lỗi vì các lỗi này thường chỉ ra các hệ thống không thành công, thay vì mã lỗi. Vì vậy, mã cho phù hợp!
Hiểu và tôi đồng ý. Tôi đã cố gắng để tìm ra nếu một sự khác biệt có thể được thực hiện nếu các nhà phát triển xử lý tất cả các trường hợp hay không. Trên thực tế nó không có ý nghĩa để suy nghĩ theo cách đó. Không có sự khác biệt trong một nhà phát triển bắt gặp lỗi không mong muốn và trả lại 500 hoặc không bắt được nó - thử nghiệm không thành công và đó là vấn đề quan trọng tôi đoán. – faboolous
Nếu bạn muốn khác biệt giữa ngoại lệ máy chủ được xử lý và không được xử lý, bạn có thể thực hiện việc đó bằng cách ghi nhật ký (ở phía máy chủ) hoặc trong phần yêu cầu (vì vậy máy khách, trong trường hợp này là thử nghiệm của bạn). – CodeCaster
làm rõ hữu ích. Nhưng mã trạng thái 500 này có thể được trả về từ máy chủ vì bất kỳ vấn đề định dạng nào trong phần thân yêu cầu không? –