I am implementing my own caching for certain endpoints on my server around If-Modified-Since and the header is getting stripped out before making it to my app. I know the app platform is behind Cloudflare so this isn’t super surprising but I can’t find this behavior documented anywhere.
Here I am making my request:
const headers = new Headers();
if (lastUpdatedRef.current) {
headers.append("if-modified-since", lastUpdatedRef.current);
}
const resp = await fetch("/api/vehicle-positions", { headers });
if (resp.status === 304) {
return; // No new data
}
And on the server when I log all of the headers it is not there:
const ifModifiedSince = req.headers.get("if-modified-since");
const clientDate = ifModifiedSince && new Date(ifModifiedSince);
console.log(req.headers); // headers without any if-modified-since
console.log("dates", currentUpdatedAt?.toUTCString(), clientDate); // dates Sun, 04 May 2025 16:52:37 GMT null
Is there any way I can get this header or should I just send it as a custom header?
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Hi there,
App Platform (and Cloudflare in front of it) can strip or block certain standard headers like
If-Modified-Since
, especially if they think it’s unnecessary or could affect caching behavior.Sending it as a custom header (e.g.,
X-If-Modified-Since
) is a good workaround.If you’re unsure whether it’s App Platform or Cloudflare stripping it, you can also reach out to DigitalOcean Support to confirm.
- Bobby