Каковы последствия использования заголовков относительного местоположения?

В соответствии с спецификацией , заголовки местоположений, используемые при перенаправлении требуется имя сервера

HTTP/1.1 301 Moved Permanently
...
Location: http://example.com/foo/baz/bar

Однако в 2012 году большинство веб-браузеров распознают относительный путь и перенаправят вас в новое местоположение с использованием имени исходного сервера

HTTP/1.1 301 Moved Permanently
...
Location: /foo/baz/bar

Есть ли какие-либо негативные /неожиданные последствия для использования относительных URL-адресов в заголовках Location? Моя особая забота заключается в том, как Google /поисковые системы будут интерпретировать это, но если есть что-то еще, я не задумываюсь о том, что я бы хотел это услышать.

17 голосов | спросил Alan Storm 23 J0000006Europe/Moscow 2012, 22:07:48

2 ответа


15

В соответствии с текущей версией стандарта HTTP /1.1, RFC 2616, значение заголовка Location должен быть абсолютным URI .

Однако в проекте стандарта , подготовленном HTTPbis Working Group , чтобы в конечном итоге заменить RFC 2616, это было изменено, чтобы разрешить относительные URI, , потому что :

  

«Определение заголовка местоположения [в RFC 2616] отличается разными способами: как минимум веб-браузеры должны иметь дело с ними, чтобы взаимодействовать с контентом в Интернете»

На практике AFAIK практически обо всех основных браузерах и поисковых системах понимает и принимает HTTP-переадресацию на относительные URL-адреса. Однако до тех пор, пока проект HTTPbis не станет официальным стандартом и не получит широкого распространения, всегда появятся новые или неясные пользовательские агенты, которые реализуют текущий стандарт для письма и будут принимать абсолютные URL-адреса. Таким образом, безопасная вещь, которую нужно сделать, пока используется только для использования абсолютных URL-адресов в заголовках Location, как предложено Закон о Postel :

  

«Будьте осторожны в том, что вы посылаете, либерально в том, что вы принимаете».

ответил Ilmari Karonen 25 J0000006Europe/Moscow 2012, 23:15:55
6

Раздел 14.30 HTTP 1.1 RFC http://www.w3.org/Протоколы /rfc2616 /rfc2616-sec14.html # sec14.30 существенно не отличаются. Я не знаю, что вы увидите реальные практические ограничения для этого.

Единственный раз, когда я видел даже предупреждение об этой проблеме, - это когда я тестировал в Lynx, и местоположение не было абсолютным, это предупредило бы вас: «Значение местоположения не абсолютное», но если я правильно помню, это все равно позвольте вам перейти в новое место. Я только что протестировал Lynx 2.8.7, и похоже, что он больше этого не делает, хотя это может быть проблема конфигурации.

Теперь вы говорите:

  

Моя особая забота заключается в том, как Google /поисковые системы будут интерпретировать   это, но если есть что-то еще, я не думаю о том, что я бы хотел   послушайте его.

Я считаю, что это требует испытания. Я установил URL-адрес, поместил его в xml карту сайта , и этот URL-адрес будет перенаправлен по мере того, как вы описываете , Я думаю, что вам нужно проверить это с помощью Инструментов Google для веб-мастеров и посмотреть, есть ли негативные последствия.

ответил artlung 24 J0000006Europe/Moscow 2012, 08:40:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132