|This page is part of the MediaWiki Action API documentation.|
Controlling caching from a client
The HTTP protocol allows controlling how browsers and web proxies cache content, via various values specified to the
(This only works for GET requests.)
The API allows the client to set two of these values,
s-maxage, via the API parameters
maxage tells the browser how long the response should be cached (in seconds).
smaxage does the same for shared proxies. In practice the latter is typically used to instruct the server-side reverse proxy (such as Wikimedia's Varnish).
Errors are never cached. User-specific responses will be marked as
Cache-Control: private so the browser will cache them but public proxies won't.
Currently the API uses a logged-in user's language setting by default, so responses to logged-in users are always private.
This can be avoided by adding the
uselang=content API parameter (T97096).
Improving cache hit ratio
A request is only served from cache if that exact URL has been cached.
(E.g. if you make the same request with
maxage=1800 and then with
maxage=3600, the second won't be able to use the first's cache entry because the different maxage parameter makes the URL different.)
If you pass a list of pages as a parameter, you might improve cache hit ratio by sorting and deduplicating them.
Controlling caching from an API module
Caching is specified by the
Typically caching is only going to be a concern in the query submodules, which should use
getCacheMode method instead, which they inherit from