2017-01-15 27 views
1

https://tools.ietf.org/html/rfc7232#section-3Почему поля заголовка http precondition поддерживают несколько etags?

Когда вам нужно будет проверить несколько этэгов вместо одного?

Например, какова была бы цель отправки HTTP-запроса с If-None-Match: "etag1","etag2"? Зачем клиенту когда-нибудь нужны "etag1" и "etag2"? Должен ли клиент использовать только последний etag, полученный от сервера для этого конкретного ресурса?

ответ

0

Зачем клиенту когда-либо нужны как etag1, так и etag2?

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

Не должен ли клиент использовать только последний etag, полученный от сервера для данного конкретного ресурса?

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

Другое дело, что Content-Type может изменить представление одного и того же ресурса в тот же момент времени. Представьте себе клиента (промежуточный кеш, скажем), который может обрабатывать как текстовые, так и gzipped-версии ресурса, и уже имеет один из них. Отправка обоих ETags (в сочетании с Accept) означает, что с меньшей вероятностью придется загружать новые данные.

+0

Почему ресурс колеблется между двумя состояниями? – nhooyr

+0

И знаете ли вы, действительно ли браузеры отправляют несколько ETags? Я не смог найти никакой информации. – nhooyr

+0

Но из моего тестирования это не похоже на то, что они делают. – nhooyr

 Смежные вопросы

  • Нет связанных вопросов^_^