Преимущества ETags для обновления URL-адреса

StackOverflow https://stackoverflow.com/questions/1909321

  •  19-09-2019
  •  | 
  •  

Вопрос

ETags позволяют браузерам выполнять условный возврат.Только в том случае, если ресурс, о котором идет речь, был изменен, его необходимо будет повторно загрузить.Однако браузеру по-прежнему приходится ждать, пока сервер ответит на его запрос.

Альтернативой ETags является введение токена в URL-адрес, указывающий на ресурс:

http://example.com/css/styles.css?token=134124134

или

http://example.com/css/134124134/styles.css

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

Однако использование URL-адресов с токенами позволяет серверу устанавливать заголовок истечения срока действия ресурса в отдаленном будущем.Это экономит время, затрачиваемое на условное получение - если ресурс не изменился, то URL, указывающий на него, останется неизменным.

Есть ли какие-либо преимущества в использовании ETags по сравнению с URL-адресами с токенами?

Это было полезно?

Решение

Основным недостатком ресурсов, доступных только для чтения, который я вижу, является то, что если бы мы все использовали этот подход для всех статических ресурсов, то клиентские кэши начали бы заполняться всевозможными устаревшими ресурсами.

Кроме того, подумайте обо всех промежуточных кэшах, которые начали бы содержать множество бесполезных файлов.

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

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

Etags также используются для ресурсов чтения-записи, и в этом случае, я подозреваю, что решение с использованием токена просто не работает.

Другие советы

Я думаю, что самым большим отличием / потенциальным преимуществом была бы конфигурация;Параметр URL должен быть настроен внутри приложения (например, HTML на самом деле должен включать значение).ETags настраиваются для всего веб-сервера, и HTML-код не нужно изменять, чтобы использовать их преимущества.

Кроме того, ETags будут (при условии, что они настроены правильно) меняться, когда файл указывает на изменения;Добавление токена к URL потребует некоторой дополнительной "вещи", которая указывает ему на изменение (либо человек, редактирующий HTML, либо какой-либо параметр конфигурации и т.д.).

Есть постоянный URI?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top