Зачем клиенту когда-либо нужны как etag1
, так и etag2
?
Если клиент имеет как etag1
и etag2
в своем кэше, то это в свою пользу, чтобы послать обоих, так что расширяет круг ситуаций, в которых он может пропустить загрузку новых данных.
Не должен ли клиент использовать только последний etag, полученный от сервера для данного конкретного ресурса?
Вы думаете о ресурсе, который при его изменении всегда изменяется на новое значение, и в этом случае не было бы никакой точки кеширования старых. Однако это не обязательно так. Представьте себе ресурс, который колеблется между двумя состояниями (представлениями), и в этом случае кеширование обоих (и отправка обоих ETags) означает, что вам никогда не придется загружать данные снова.
Другое дело, что Content-Type
может изменить представление одного и того же ресурса в тот же момент времени. Представьте себе клиента (промежуточный кеш, скажем), который может обрабатывать как текстовые, так и gzipped-версии ресурса, и уже имеет один из них. Отправка обоих ETags (в сочетании с Accept
) означает, что с меньшей вероятностью придется загружать новые данные.
Почему ресурс колеблется между двумя состояниями? – nhooyr
И знаете ли вы, действительно ли браузеры отправляют несколько ETags? Я не смог найти никакой информации. – nhooyr
Но из моего тестирования это не похоже на то, что они делают. – nhooyr