Чи є переспрямування 302 на відносну URL-адресу дійсним чи недійсним?


76

Виходячи з RFC, здається, що поле Location у відповіді HTTP для 302 має бути абсолютним. http://tools.ietf.org/html/rfc2616#section-14.30

Якщо це твердження правильне, чи виконують це браузери - чи дозволяють відносні шляхи?

Відповіді:


23

Відносні URL-адреси є дійсними.

У RFC 2616 є помилка. Див. Http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-17.html#rfc.section.9.5 .


Будь ласка, залиште в специфікаціях примітку, що додавання ідентифікатора фрагменту URI не відповідає правилам абсолютного / відносного дозволу URI, що відрізняються від / різняться [RFC3986].
hakre

@hakre, будь ласка, детальніше уточніть список розсилки Робочої групи
Джуліан Решке,

Оскільки ви редактор, я просто хотів переконатись, що ви знаєте про це, тож дякую, що повідомили. QFT «@hakre прохання пояснити більш в списку Робочої групи розсилки - Джуліан Решке 17 дек '12 в 7:12»
hakre

1
hakre: в специфікації сказано, щоб вирішити це згідно з RFC 3986; вам дійсно потрібно правильно пояснити, в чому, на вашу думку, проблема. І неодмінно робіть це там, де очікується зворотний зв'язок щодо специфікацій. Знову і поза.
Джуліан Решке

6
Про що ти говориш? Чи не йдеться про питання про RFC (він же фактично стандарт), тоді як ця відповідь говорить про проект (тобто незавершене виробництво)?
BlaM

152

RFC 2616 вимагає абсолютного URI вLocation , але цей стандарт було замінено з червня 2014 року. Відповідна специфікація тепер є RFC 7231. У відповідному розділі нового стандарту сказано:

Місцезнаходження = посилання на URI

Значення поля складається з одного посилання на URI. Коли воно має форму відносного посилання ([RFC3986], розділ 4.2), остаточне значення обчислюється шляхом його вирішення щодо ефективного URI запиту ([RFC3986], розділ 5).

Отже, відносний URI тепер дозволений . Ефективний запит URI є такою ж , як запиту URI в більшості випадків.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.