Safari doesn't seem to respect cache-control on fetch redirects

I am calling fetch with a POST on page1 in Safari. No special cache parameters on the fetch call.

The response from the server is a 303 redirect to page2

The second page -- page2 -- is in my browser's cache with cache-control "public, max-age=31536000, immutable".

For some reason, the page2 redirect is causing a server hit to re-GET the second page every time instead of pulling from cache.

If I instead directly get the second page by doing a fetch on page2, there is no server hit.

If I do this on Chrome or Firefox, it behaves as I would expect, pulling page2 from the cache with no server hit.

In case it matters, the fetch is coming from within an iFrame. Also, if I change the original POST to a GET, the problem still happens.

I am using a pretty old version of Safari on my Mac, so I could chalk it up to that, but I am getting the same behavior with Safari on my iPhone with iOS 18.3.2

Any ideas?

Thanks.

Safari doesn't seem to respect cache-control on fetch redirects
 
 
Q