Чи є переспрямування 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.