A request passes through multiple cache layers, each closer to the user serving faster but holding less. The idea is to answer as far out (close to the client) as possible and only fall through to the origin when nothing upstream can serve the response.
The layers, outward-in
text
Browser → CDN → Reverse proxy → App/object cache → OPcache → Database
(closest to user, fastest) (closest to data)
