Ngoài câu trả lời của @ Dherik.
URI là mã định danh , vì vậy chúng tôi phải ghi nhớ rằng ( /a/{id}/b
là mã định danh). Các URI là vô nghĩa đối với cá nhân, và như vậy là cho khách hàng HTTP.
404 là câu trả lời đúng . Về bản chất, máy chủ đang trả lời
Tôi đã không tìm thấy bất kỳ tài nguyên với id như vậy. Tài nguyên không tìm thấy
1
Cho dù tài nguyên bị thiếu là cha mẹ hay con cái không quan trọng.
Chúng tôi, các nhà phát triển, xem phân cấp và đường dẫn trong URI, nhưng các máy khách HTTP thì không. Nói cách khác, HTTP chỉ có nghĩa là được giải thích bởi các máy khách HTTP chứ không phải bởi con người (nhà phát triển, người dùng cuối, v.v.).
Trong trường hợp nghi ngờ, đừng hỏi mã nào có ý nghĩa đối với bạn (con người). Hãy hỏi, mã nào có ý nghĩa đối với máy khách HTTP. Bạn muốn ứng dụng khách HTTP hoạt động như thế nào?
Tại sao? Bởi vì một số mã trạng thái làm cho các khách hàng này thực hiện các hoạt động nhất định. Ví dụ: 302 . Mã này thường làm cho các trình duyệt web chuyển hướng đến một vị trí cụ thể (URI) được thông báo trong các tiêu đề phản hồi.
Đây có thể không phải là trường hợp của bạn, nhưng điều quan trọng là phải nhận thức được. Cuối cùng, mã trạng thái HTTP được gửi đến các máy khách HTTP. Không cho các ứng dụng của chúng tôi. Không cho người.
1: 409 hiếm khi được thực hiện như lỗi điều hướng. Nó thường liên quan đến việc thực hiện các hoạt động từ xa (xóa, cập nhật, mới, v.v.). Nhưng URI nên tồn tại. Nếu không, 404 sẽ thắng thế