Поделиться через


Взаимодействие с политикой кэша: максимальный возраст и устаревание

Чтобы обеспечить возврат клиентскому приложению самого актуального содержимого, в результате взаимодействия политики кэша клиента и требований к повторной проверке сервера всегда применяется наиболее консервативная политика кэша. Все примеры в этом разделе иллюстрируют политику кэша для ресурса, который кэшируется 1 января и срок действия которого истекает 4 января.

В следующих примерах значение максимального возраста (maxStale) используется в сочетании со значением максимального срока действия (maxAge):

  • Если в политике кэша значение maxAge задано равным 5 дням, а значение maxStale не задано, то в соответствии со значением maxAge содержимое можно использовать до 6 января. Однако согласно требованиям сервера к повторной проверке срок действия содержимого истекает 4 января. Так как дата истечения срока действия содержимого более консервативна (наступает раньше), она имеет приоритет над политикой maxAge. Поэтому срок действия содержимого истекает 4 января и его необходимо проверить повторно, несмотря на то, что максимальный срок действия не достигнут.

  • Если политика кэша задает значение maxAge равным 5 дням, а значение maxStale равным 3 дням, то в соответствии со значением maxAge содержимое можно использовать до 6 января. Согласно значению maxStale содержимое можно использовать до 7 января. Поэтому оно будет проверено повторно 6 января.

  • Если политика кэша задает значение maxAge равным 5 дням, а значение maxStale равным 1 дню, то в соответствии со значением maxAge содержимое можно использовать до 6 января. Согласно значению maxStale содержимое можно использовать до 5 января. Поэтому оно будет проверено повторно 5 января.

Если максимальный срок действия заканчивается раньше фактической даты истечения срока действия, приоритет имеет более консервативный критерий кэширования и значение максимального возраста не действует. В следующих примерах показан результат задания максимального возраста (maxStale) в случае, если максимальный срок действия (maxAge) истекает до того, как содержимое станет недействительным:

  • Если политика кэша задает значение maxAge равным 1 дню, а значение maxStale не задано, содержимое проверяется повторно 2 января, даже если срок его действия не истек.

  • Если политика кэша задает значение maxAge равным 1 дню, а значение maxStale равным 3 дням, содержимое проверяется повторно 2 января в соответствии с более консервативным параметром политики.

  • Если политика кэша задает значения maxAge и maxStale равными 1 дню, содержимое повторно проверяется 2 января.

См. также