As far as I can see, you already have browser cache TTL 30 min and Edge cache TTL 1 month. This means that Cloudflare CDN will cache requests for up to a month, but browser will only cache request for 30 minutes. You can of course set browser cache TTL to 0, which means you will get Cloudflare cache, but not browser cache.
even if the server is down cloudflare should response from cache. it does not need to re-validate the content
Cloudflare has 100+ POP servers, and there is no guarantee that your requests are stored on their CDN for 1 month, at least not from all POP locations. If your server goes down and the request does not exist in Cloudflare CDN, you will get a general error page.
cloudflare only re-validate when i purge the cache from cloudflare.
It already works like this in your settings. When a request is made, Cloudflare will check if the requested file exists on CDN, and serve this file (without contacting your server). If the file does not exist, then it will load the file from your origin.
I found a term Cache-Control: Immutable
Cache-Control: Immutable does not have any additional effect on Cloudflare. It just tells browsers that “this file will NEVER change”. Yes, you should avoid “Immutable” if you don’t want the browser to cache the request.
It’s important to note that Cloudflare caching is based on request volume, and just because you set EDGE cache TTL to 1 month, does not mean Cloudflare will cache the request for one month. It will do so only if there is sufficient amount of requests for the request on that specific Cloudflare POP server.
Also, there are other ways to achieve what you are trying to do. You can use s-maxage in cache-control headers to specifically tell Cloudflare (or other CDN servers) to cache a request, without having the browser cache the request. For example:
cache-control: public, max-age=0, s-maxage=315360000
In the above, the request will be cached on Cloudflare CDN, while browsers will not cache the request. This means you can flush cache manually from dashboard or API. Keep in mind, if you are adding the above header to non-static assets like html, it will need to be combined with a “cache everything” Cloudflare rule.