Готовый перевод Best Practices for Speeding Up Your Web Site / Рекомендации лучших вебоводов для ускорения вашего сайта: Avoid Redirects / Избегайте переадресаций
Переадресации осуществляются с помощью 301-го или 302-го кодов состояния. Вот пример HTTP заголовка для 301-го ответа:
HTTP/1.1 301 Moved Permanently
Location: http://example.com/newuri
Content-Type: text/html
Браузер автоматически перенаправляет пользователя по адресу, указанному в поле Location. Вся необходимая для переадресации информация находится в заголовках. Тело ответа обычно пустое. Несмотря на свои имена, ни 301-й, ни 302-й ответы не кешируются, если только необходимость кеширования не указана явно либо в поле Expires либо в Cache-Control. Метатег refresh или JavaScript являются альтернативными способами переадресации пользователей на другой URL, однако, если вам крайне необходимо использовать переадресацию, то лучше использовать стандартные 3хх HTTP коды состояния, в первую очередь для обеспечения правильной работы кнопки возврата.
Главное помнить, что переадресации замедляют работу пользователя. Включение переадресации между пользователем и HTML документом задерживает всю страницу, так как на странице ничего не может быть отрисовано и никакие компоненты не могут быть загружены пока не будет получен сам HTML документ.
Одна из самых бесполезных переадресаций появляется часто даже без ведома веб-разработчиков. Это происходит когда в урле отсутствует завершающий слеш (/). К примеру, заход на http://astrology.yahoo.com/astrology выдает 301-ю ошибку, содержащую переадресацию на http://astrology.yahoo.com/astrology/ (отметьте завершающий слеш). В Апаче это реализуют либо Alias либо mod_rewrite, либо директива DirectorySlash, если вы используете обработчики Апача.
Связка старого сайта с новым сайтом еще одно применение для редиректов. Также они используются для переключения между различными частями сайта и перенаправления пользователей на основании определенных условий (тип браузера, тип пользовательского аккаунта, и пр.). Использование переадресации для соединения двух веб-сайтов довольно просто и не требует большого дополнительного кодирования. Хотя использование редиректов в таких ситуациях уменьшает сложность для разработчиков, это ухудшает взаимодействие с пользователями. Альтернативой такого использования перенаправлений является использование Alias и mod_rewrite, если оба пути находятся на одном сервере. В случае различных доменов альтернативой является создание CNAME (DNS-запись, создающая алиас, перенаправляющий с одного домена на другой) в комбинации с Alias или mod_rewrite
Переведено на Нотабеноиде
http://notabenoid.org/book/31735/110121
Переводчики: Alexasa
Настройки
Готово:
