Подтвердить что ты не робот

Известны ли случаи, когда HTTP-клиенты не поддерживают относительные перенаправления?

Относительные перенаправления (т.е. относительные URL-адреса в заголовке HTTP-местоположения) первоначально не поддерживались в соответствии с RFC 2616, раздел 14.30. Однако это было описано как "ошибка в спецификации", а позже было изменено в RFC 7231, раздел 7.1.2. Таким образом, относительные переадресации теперь "официально поддерживаются".

Мой вопрос: существуют ли какие-либо известные случаи HTTP-клиентов (браузеры, инструменты, библиотеки..), не поддерживающие относительные перенаправления?

Update: В качестве альтернативы, действительный ответ может предоставить исчерпывающий список HTTP-клиентов, которые, как известно, принимают относительные перенаправления вместе с диапазонами номеров версий.

4b9b3361

Ответ 1

Я занимался некоторыми исследованиями, и похоже, что большинство браузеров (а также поисковый робот Googles) поддерживают эту функцию. Хотя я не смог получить окончательный список. В конечном итоге может существовать около 10000 http-клиентов, каждый из которых имеет свой собственный способ обработки полей заголовка (некоторые могут даже игнорировать его полностью).

Поскольку RFC 7231 является совершенно новым (2014 год), моя рекомендация заключалась бы в том, чтобы не рассчитывать на него. После Закон о Postel ( "Будьте консервативны в том, что вы отправляете, будьте либеральными в том, что вы принимаете" ) Я думаю, что придерживаться определенный стандарт - это всегда хорошая идея, и просто добавление домена к перенаправлению не вызывает особых проблем.

Ответ 2

"Согласно протоколу HTTP, заголовок Location должен содержать абсолютный URI. [5] При перенаправлении с одной страницы на другую в на том же сайте, распространенной ошибкой является использование относительного URI. В результате большинство браузеров допускают относительные URI в заголовке Location, но некоторые браузеры отображают предупреждение для конечного пользователя."

От: http://en.wikipedia.org/wiki/URL_redirection#Using_server-side_scripting_for_redirection:


Лично я использую относительные переадресации в течение многих лет, и они работают с каждым обозревателем на рабочем столе/мобильном устройстве и поисковыми роботами, с которыми я тестировал. Вы можете протестировать, например, бот Google, используя инструмент fetch as google на панели инструментов веб-мастеров.

Это, вероятно, немного вне области видимости, но google также следует JavaScript перенаправлениям (window.location).