2015-09-16 16 views
11

Chuyển hướng tương đối (tức là URL tương đối trong tiêu đề HTTP: tiêu đề) ban đầu không được hỗ trợ theo RFC 2616, section 14.30. Tuy nhiên, điều này được mô tả là "lỗi trong thông số kỹ thuật" và sau đó được thay đổi trong RFC 7231, section 7.1.2. Do đó, các chuyển hướng tương đối hiện được "hỗ trợ chính thức".Có bất kỳ trường hợp khách hàng HTTP nào không được hỗ trợ không hỗ trợ chuyển hướng tương đối không?

Câu hỏi của tôi là: Có bất kỳ trường hợp khách hàng HTTP nào được biết (trình duyệt, công cụ, thư viện ..) không hỗ trợ chuyển hướng tương đối không?

Cập nhật: Ngoài ra, câu trả lời hợp lệ có thể cung cấp danh sách đầy đủ các ứng dụng khách HTTP được chấp nhận chuyển hướng tương đối, cùng với phạm vi số phiên bản.

+3

Tôi hiện đang bị cám dỗ để viết một ứng dụng khách http không hỗ trợ chuyển hướng tương đối. :-) – Nathan

+0

Đó là một điều tốt :-) – Grodriguez

+0

Tôi không nghĩ rằng bất cứ ai cũng có thể cung cấp danh sách đầy đủ ... – MrTux

Trả lời

3

Tôi đã thực hiện một số nghiên cứu và có vẻ như trên thực tế, hầu hết các trình duyệt (và cả bot tìm kiếm của Googles) đều hỗ trợ tính năng này. Tôi đã không thể có được một danh sách dứt khoát mặc dù. Một số 10000 khách hàng http cuối cùng có thể tồn tại, mỗi người trong số họ có cách riêng của họ để xử lý các trường tiêu đề (một số thậm chí có thể bỏ qua nó hoàn toàn).

Vì RFC 7231 là khá mới (2014), đề xuất của tôi sẽ không được tính vào nó. Theo sau Postel's law ("Hãy bảo thủ những gì bạn gửi, được tự do trong những gì bạn chấp nhận") Tôi nghĩ rằng gắn bó với các tiêu chuẩn xác định luôn luôn là một ý tưởng tốt và chỉ cần thêm tên miền để chuyển hướng không phải là nhiều rắc rối.

+0

dễ dàng. Nếu được sử dụng, ví dụ: với httpd apache, tiêu đề Vị trí có thể được viết lại tự động. – MrTux

+1

Tôi chắc chắn không cần một danh sách với 10000 khách hàng nhưng có lẽ một danh sách những người sử dụng nhiều nhất sẽ giúp đỡ. Về Postel: RFC 7321 thực sự sửa đổi những gì được các biên tập viên coi là "một lỗi trong thông số [RFC 2616]", và nó cũng lập luận rằng điều này luôn được hỗ trợ bởi tất cả các trình duyệt chính. Re. "Thêm tên miền vào chuyển hướng không phải là nhiều rắc rối": Điều đó phụ thuộc.Trong trường hợp sử dụng của tôi (một kịch bản proxy phức tạp), máy chủ thậm chí không biết tên miền gốc ** cũng như ** (quan trọng hơn) giao thức (proxy cũng hoạt động như một đường hầm https). – Grodriguez

0

"Theo giao thức HTTP, tiêu đề vị trí phải chứa một tuyệt đối URI. [5] Khi chuyển hướng từ trang này sang trang khác trong cùng một trang web , đó là một sai lầm phổ biến để sử dụng một URI tương đối. Kết quả là hầu hết các trình duyệt đều chấp nhận URI tương đối trong tiêu đề Vị trí, nhưng một số trình duyệt hiển thị cảnh báo cho người dùng cuối. "

Từ: http://en.wikipedia.org/wiki/URL_redirection#Using_server-side_scripting_for_redirection:


Cá nhân mà nói, tôi đã sử dụng chuyển hướng tương đối trong nhiều năm và họ làm việc với từng desktop/trình duyệt di động và chương trình tôi đã thử nghiệm với tìm kiếm. Bạn có thể thử nghiệm, ví dụ: bot google bằng cách sử dụng công cụ fetch as google trên trang tổng quan quản trị viên web.

Đây có thể là một chút nằm ngoài phạm vi nhưng google cũng theo sau JavaScript chuyển hướng (window.location).

+0

Wikipedia không phải là tài liệu tham khảo có thẩm quyền; RFC là. Vui lòng xem RFC 7231, như được chỉ ra trong câu hỏi. – Grodriguez

+1

Bài viết wikipedia đã trích dẫn giao thức RFC HTTP. –

+1

Nếu nó trích dẫn RFC 2616, sau đó nó đã trích dẫn một RFC lỗi thời, như bạn sẽ biết nếu bạn đã theo các liên kết trong câu hỏi của tôi. Bằng cách này tôi không biết phiên bản wikipedia nào bạn đang xem, nhưng phần bạn đã liên kết thực sự nói: "HTTP/1.1 cho phép tham chiếu URI tương đối hoặc tham chiếu URI tuyệt đối". và trích dẫn RFC 7231 (và văn bản này chưa được chỉnh sửa từ tháng 7 năm 2014). – Grodriguez

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