ETags являются альтернативой (но могут использоваться в сочетании с) «Last-Modified-Time» для определения проверки кэша.
Клиент может отправить предварительное условие, такое как if-match или if-none-match, на основе ETag. Это не только для запросов GET (что и делает webpagetest.org), вы можете использовать «оппортунистическое обновление», так что запрос PUT имеет предварительное условие и не будет выполнять операцию обновления, если ресурс был обновлен, так как ETag был последний приобрел.
Проще говоря: вы нажимаете кнопку "Изменить" на странице в вашей CMS, ваш друг нажимает кнопку "Редактировать" на странице в вашей CMS, ваш друг выполняет их редактирование и сохраняет нажатия, и, наконец, вы нажимаете "Сохранить" - без HTTP-заголовка ETag или Content-MD5, который вам понадобится чтобы заново изобрести колесо, чтобы предотвратить возникновение проблем (таких как стирание изменений друзей), решение уже является частью протокола HTTP, и поэтому имеет смысл просто использовать его.
Как правило, я согласен с AOL (который запускает webpagetest.org) по их совету «один размер подходит всем» - лучше не засорять заголовки HTTP загадочными строками (ETag, как правило, не очень красивы или удобочитаемы для человека), когда секунда разницы ( который может обнаружить Last-Modified-Time) для работы в руке.
Если страница обновляется несколько раз в секунду, и вам абсолютно необходима последняя самая точная версия для отображения, вы можете поэкспериментировать с решениями, отличными от HTTP GET, или просто использовать ETag.
Будьте осторожны, чтобы ваши ETag не включали информацию о файловой системе, об изменении конфигурации сервера и т. Д. (Например, inode-ы, которые по умолчанию установлены в Apache), иначе у вас будут проблемы, когда есть два сервера (ETag каждого из них не будут совпадать).