Избегайте переадресаций

В статье "Avoid Redirects" автор рекомендует не использовать переадресацию, т. к. это замедляет работу пользователя.

Переадресации осуществляются через использование 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