Назад | Перейти на главную страницу

Как прокси обрабатывают ETags?

Я использую ETags для повышения производительности. Я решил использовать Etag, который действителен на сервере, клиенте и прокси.

Но как с этим справиться, если прокси сохранил ETag? Прокси-сервер по-прежнему спрашивает веб-сайт, действителен ли ETag, или сам прокси просто отвечает: «Я знаю это. Не нужно спрашивать сервер?»

Или, другими словами, будет ли работать следующий сценарий, если включено ETag-Caching on Proxy?

  1. Браузер делает запрос. ETag "ABBA" возвращается
  2. Браузер делает еще один запрос к серверу. Распознается ETag "ABBA", возвращается 304 2.1 Браузер использует локальный кеш
  3. Браузер выполняет еще один запрос к серверу, отправляя ETag «ABBA». На этот раз сервер решает, что данные изменились, поэтому он возвращает новый ответ с новым Etag.

Если между клиентом и сервером есть прокси, который знает ETag, он все еще спрашивает сервер, действителен ли Etag, или на этом запрос заканчивается, если прокси однажды знает etag?

Поведение прокси-сервера в основном контролируется вашим Кэш-контроль заголовок, установленный внутренним сервером.

Пока ресурс не истек, прокси будет обслуживать его (включая все связанные метаданные, такие как ETag) из кеша. Прокси-серверу не нужно связываться с сервером для проверки исходного содержимого, если ему разрешено хранить ресурс в кеше.

Как только заголовок Cache-Control требует, чтобы ресурс истек из кэша или был повторно проверен, прокси-сервер снова свяжется с сервером, чтобы проверить исходный ресурс. Если ETag не был изменен на сервере, его не нужно загружать повторно, тот же объект (но с обновленными таймингами Cache-Control) может оставаться в кеше.

Этот ресурс может быть интересно.