304 Status

There are two caches we’re talking about:

  1. Cloudflare Edge Cache: Your static files held on Cloudflare’s edge servers for a certain amount of time.
    https://support.cloudflare.com/hc/en-us/articles/202775670-How-Do-I-Tell-Cloudflare-What-to-Cache-

  2. Browser Cache: The content your visitors’ browsers naturally hold onto according to your cache headers.
    https://support.cloudflare.com/hc/en-us/articles/200168276-What-does-the-Browser-Cache-Expiration-do-

I’m no cache expert, but I believe this is how it’s working: Since Cloudflare acts like a browser visiting your site, Cloudlfare edge-caches images, css, etc. for a couple of hours. But it knows you have your browser cache header set for a day or whatever. So after Cloudflare’s edge cache expires, but its browser cache hasn’t expired, it needs to refresh the edge cache by seeing if your file has changed on your server. No change means it gets a 304 and the Edge Cache is REVALIDATED for another couple of hours or so.

It’s possible the browser cache setting has nothing to do with this, but the edge cache checks back after it expires to see if the file has changed since the last edge cache fetch.