Как прокси-серверы обрабатывают ETag?

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

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

Или, другими словами, следующий сценарий все еще работает, если ETag- Кэширование на прокси-сервере включено?

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

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

4
задан 22 April 2016 в 12:26
1 ответ

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

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

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

Этот ресурс может представлять интерес.

3
ответ дан 3 December 2019 в 03:40

Теги

Похожие вопросы