Избегайте переадресаций
Переадресации осуществляются через использование 301 и 302 кодов HTTP-статуса. Вот пример HTTP-заголовков в 301 ответе
HTTP/1.1 301 Moved Permanently Location: http://example.com/newuri Content-Type: text/html
Браузер автоматически переводит пользователя на URL, указанный в поле Location
. Вся информация, необходимая для переадресации находится в заголовках. Тело ответа обычно пусто. Несмотря на название, на практике ни 301, ни 302 ответ не кэшируются, если конечно дополнительные заголовки, такие, как Expires
или Cache-Control
, не указывают на обратное. Метатег обновления и JavaScript являются ещё одним способом переадресации пользователей на другой URL, но если Вам необходимо сделать переадресацию, то предпочтительным способом будет использование стандарта 3xx кодов HTTP-статуса, прежде всего для того, чтобы гарантировать правильную работу кнопки "back".
Главное помните, что переадресация замедляет работу пользователя. Установка переадресации между пользователем и HTML-документом задерживает загрузку страницы, и никакие компоненты не смогут запуститься без HTML-документа.
Чаще всего встречается одна из наиболее неэкономных переадресаций, о которой не знают даже Веб-разработчики. Это происходит, когда отсутствует конечная наклонная черта вправо (/) в URL, хотя она там должна быть. Например, если Вы наберёте ttp://astrology.yahoo.com/astrology, то 301 ответ будет содержать переадресацию на http://astrology.yahoo.com/astrology/ (обратите внимание на добавленную конечную наклонную черту вправо). Это задано в Apache, через использование Alias
или mod_rewrite
, или директивы DirectorySlash
, если Вы используете обработчики Apache.
Соединение старого Веб-сайта с новым - это ещё одно традиционное использование переадресации. Другие используют соединение различных частей Веб-сайта и переадресацию пользователя, на основе определенных условий (тип браузера, тип аккаунта пользователя, и т.д.). Использование переадресации для соединения двух сайтов является простым и не требует большого дополнительного кодирования. Хотя использование переадресаций в таких ситуациях, облегчает работу для разработчиков, оно ухудшает работу пользователей. Альтернативой такого использования переадресаций, является использование Alias
и mod_rewrite
если два пути кода размещены на одном сервере. Если изменение имени домена является причиной использования переадресации, то альтернативой может послужить создание CNAME в комбинации с Alias
или mod_rewrite
.
Оригинал статьи на developer.yahoo.com
Перевод КОМТЕТ komtet.ru