Достаточно ли перенаправлять изображения HTTP?

Можно ли вернуть код 301/302/303 при возврате ресурса изображения? Я сделал это в прошлом и, похоже, работает. Это хорошая практика и совместима ли она с большинством браузеров?

Да, вы можете перенаправить изображения, а браузеры будут перенаправлены. Но вы, как правило, хотите сохранить redirect до минимума по соображениям производительности, поскольку для каждого перенаправления требуется отдельный HTTP-запрос, который добавляет накладные расходы сервера и немного увеличивает время загрузки страницы конечного пользователя.

Единственное, что вам следует избегать, – это перенаправить много изображений на страницу. Это значительно замедлит загрузку страницы, особенно в сетях с высокой задержкой (например, телефон, Китай, спутниковый интернет), где каждый новый HTTP-запрос занимает много времени. Кроме того, клиенты HTTP ограничены небольшим количеством одновременных HTTP-соединений на каждое имя хоста сервера, поэтому даже в быстрых сетях вы получите узкое место.

Однако redirect 1 или 2 изображений на страницу не имеет большого значения.

Если вы перенаправляете изображения, и они кэшируются, вы идеально настроили заголовок HTTP Expires (и соответствующий заголовок Cache-Control) для даты в отдаленном будущем, поэтому по крайней мере при последующих посещениях страницы пользователи не будут иметь снова пройти redirect.

Если причиной перенаправления является соответствие новой схеме URL-адресов, большинство веб-серверов имеют простой способ переписать URL-адреса на сервере, не отправляя фактическое redirect обратно клиенту. Другими словами, клиент может запросить /static/bar.jpg но сервер может быть настроен для перевода в /media/images/bar.jpg . Этот подход перезаписи URL-адресов предпочтительнее перенаправления в большинстве случаев, поскольку вы можете реорганизовать, где живет ваш контент на сервере, не принося излишнего перенаправления на стороне клиента или сервера.

Да, это работает.

Что такое хорошая практика, каковы альтернативы? Возврат ответа об ошибке (404)? Не очень полезно. Возврат изображения, возвращаемого перенаправленным ресурсом? Вероятно, это невозможно, иначе вы не будете перенаправлять. Фиксирование тегов img новым URL? Конечно, по возможности, но, возможно, вы хотите, чтобы браузер тщательно переработал (возможно, счетчик).

Это нормально, если код действительно отражает реальность – например, если изображение действительно перемещено постоянно, вы должны использовать 301.

  • .htaccess переписать для перенаправления корневого URL в подкаталог
  • Как перенаправить URL-путь в IIS?
  • Лучшая практика: 301 Перенаправление HTTP на HTTPS (стандартный домен)
  • Принудительное redirect после входа в систему
  • Как определить, была ли перенаправлена ​​Console.In (stdin)?
  • Добавление сообщения лиц на перенаправленную страницу с помощью ExternalContext.redirect ()
  • Использование DNS для перенаправления на другой URL-адрес с помощью пути
  • Используя JSF 2.0 / Facelets, есть ли способ подключить глобальный прослушиватель ко всем вызовам AJAX?
  • Является ли redirect 302 относительным URL действительным или недействительным?
  • Как перенаправить все HTTP-запросы на HTTPS
  • Перенаправление в другой домен, но сохранить введенный домен
  • Давайте будем гением компьютера.