API:Caching data/ru

Управление кэшированием со стороны клиента
Протокол HTTP позволяет управлять тем, как браузеры и веб-прокси кэшируют данные, путём установки особых значений в заголовок. (Это работает только для GET-запросов.) API позволяет клиенту задать два из этих параметров,  и , через параметры API   и.

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

Ошибки никогда не кэшируются. Зависящие от пользователя ответы будут помечены, как, так что браузеры будут кэшировать их, а общедоступные прокси — нет. На данный момент API использует по умолчанию язык вошедшего в учётную запись пользователя, так что ответы таким пользователям всегда непубличны. Этого можно избежать, добавив параметр API  (T97096).

Улучшение отношения попаданий в кэш
Запрос выдаётся из кэша, только если именно этот URL был кэширован. (Например, если вы отправляете тот же самый запрос с, а затем с  , второй запрос не сможет использовать кэшированный результат первого, поскольку различные значения параметра maxage делают URL различными.) Если вы передаёте в качестве параметра список страниц, вы можете улучшить отношение попаданий в кэш, отсортировав список и удалив дубликаты.

Управление кэшированием из модуля API
Кэширование определяется методами. Обычно кэширование будет проблемой только в подмодулях $query, в которых вместо вышеописанного следует использовать метод, который они наследуют от.