We are having a Page Rule for a specific endpoint which as a wildcard as the last URL parameter, which is a numerical identifier, ex:
Settings are as follow:
Browser Integrity Check: Off
Web Application Firewall: On
Security Level: Essentially Off
Cache Level: Cache Everything
Edge Cache TTL: 10 minutes
The expectation here is for CF to return the cached content (a simple JSON payload) for all requests, regardless of IP, location, headers, or any other criteria.
What we are observing is that it is cached for 10 minutes for each individual requester. In other words: we should see only one request per unique endpoint per 10 min on the Origin, which is not the case.
Based on your response, you confirm there’s nothing wrong with our Page Rule settings?
Our tests were performed with people from the same region and on the same ISP. We have see the request for Person #1 reach the Origin and 5 minutes later, Person #2 performed the same request, which also reached the Origin, which is not expected.
In addition to the excellent answer from @DarkDeviL , you should also consider that Cloudflare does not guarantee that a file is cached for the full TTL. More popular and smaller files stand better chances of staying in the cache for the whole TTL.
Especially when you request a file only once (and then wait a few minutes), it is almost guaranteed to be evicted from cache, as Cloudflare keeps files in memory cache for a short duration and only writes them to the SSD cache if they are requested for a second time while they are still in memory cache.
Here’s a bit more detailed information on Cloudflare’s cache-eviction policy: