Взаимодействие с политикой кэша: максимальный возраст и устаревание
Чтобы обеспечить возврат клиентскому приложению самого актуального содержимого, в результате взаимодействия политики кэша клиента и требований к повторной проверке сервера всегда применяется наиболее консервативная политика кэша. Все примеры в этом разделе иллюстрируют политику кэша для ресурса, который кэшируется 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 января.