Tôi có một cuộc thảo luận tuyệt vời về khái niệm với đồng nghiệp của tôi về việc sử dụng tiêu đề Vị trí trong 202 Phản hồi được chấp nhận.Việc sử dụng tiêu đề Vị trí trong phản hồi RFC HTTP 202 có tuân thủ không?
Câu chuyện bắt đầu phân tích hành vi của hàm PHP header() từ here. Đoạn trích thú vị:
Trường hợp đặc biệt thứ hai là tiêu đề "Vị trí:". Nó không chỉ gửi tiêu đề này trở lại trình duyệt mà còn trả về mã trạng thái REDIRECT (302) cho trình duyệt trừ khi mã trạng thái 201 hoặc mã 3xx đã được đặt.
Chúng không bao gồm 202 mã trạng thái trong hành vi mặc định này. Có vẻ như họ không mong đợi rằng 202 phản hồi có Vị trí và thực sự:
header("HTTP/1.1 202");
header("Location: http://example.com");
chuyển hướng khách hàng đến URL vị trí. Tất nhiên, có thể thay đổi hành vi này với tham số thứ ba của hàm header() nhưng điều thu hút sự chú ý của tôi là: Tại sao họ hiểu rằng theo mặc định 202 không được mong đợi để giữ tiêu đề Vị trí?
Sau đó, tôi xem lại RFC để tìm ý nghĩa chính thức của 202 trạng thái. Đoạn trích thú vị:
Thực thể trả về với phản hồi này NÊN bao gồm chỉ báo trạng thái hiện tại của yêu cầu và con trỏ đến màn hình trạng thái hoặc ước tính thời điểm người dùng có thể mong đợi yêu cầu được hoàn thành.
Nó không đề cập rõ ràng đến tiêu đề Vị trí như trước đây (trong cùng một tài liệu RFC) 201 phản hồi. Điều đó có lẽ sẽ là lý do tại sao PHP guys hiểu rằng 202 phản ứng không nên giữ tiêu đề Location. Một con trỏ có được hiểu là tiêu đề Vị trí hoặc các tên PHP đã đưa ra giả định sai? Nếu tiêu chuẩn cho phép tiêu đề Vị trí có 202 phản hồi: không nên là tài liệu chính thức rõ ràng hơn như định nghĩa phản hồi 201?
Cuối cùng tôi xem xét các phiên bản recently RFC nhất và tìm thấy một thay đổi nhỏ trong soạn thảo:
Các đại diện gửi với phản ứng này nên để mô tả tình trạng hiện tại của yêu cầu và điểm đến (hoặc nhúng) theo dõi trạng thái đó cung cấp cho người dùng ước tính thời điểm yêu cầu sẽ được thực hiện.
Một lần nữa, không đủ rõ ràng để giả định rằng trỏ đến có nghĩa là Tiêu đề vị trí.
Tóm lại, sau các sửa đổi ở trên: Tôi có tuân thủ RFC khi sử dụng tiêu đề Vị trí với 202 phản hồi không?
Làm theo lời giải thích của bạn, tôi nên thực hiện ** khái niệm ** đối tượng dưới dạng ** đối tượng **. Tuyệt quá! nhưng nếu điều này là đúng thì RFC 2616: *** Các thực thể ** trả lại với phản ứng này ... * có nghĩa là chỉ thị trạng thái nên được đặt trong cơ quan thực thể, KHÔNG ở vị trí. Mọi tiêu đề có thể có của tiêu đề Vị trí đã được đề cập rõ ràng trên toàn bộ RFC như tôi đã thấy. Có Tôi biết rằng nó sẽ đơn giản như chỉ bao gồm Vị trí, sau đó đọc nó từ khách hàng nhưng câu hỏi của tôi là thực sự nếu nó là khái niệm đúng theo RFC. – Delmo
Tôi nghĩ rằng nó phù hợp với văn bản của RFC. – Brad
Cảm ơn bạn đã giải thích. Tôi đã bình chọn. Vấn đề này không đủ rõ ràng cho tôi. Tôi thực sự tin rằng RFC nên rõ ràng hơn một chút hoặc có thể tôi cần phản hồi từ các tác giả RFC (LOL). – Delmo