<div dir="ltr"><div>Hello,<br><br>When a user refreshes(F5) or performs a hard refresh(ctrl+F5) in their browser, the browser includes the <b>Cache-Control: no-cache</b> header in the request. <br>However, in our<b> production Varnish setup</b>, we have implemented a check that treats<b> requests with Cache-Control: no-cache as cache misses</b>, meaning it bypasses the cache and goes directly to the backend server (Tomcat) to fetch the content.<br><br><b>Example:</b><br>in vcl_recv subroutine of default.vcl:</div><div><br></div><div>sub vcl_recv{</div><div>      #other Code</div><div>      # Serve fresh data from backend while F5 and CTRL+F5 from user<br>        if (req.http.Cache-Control ~ "(no-cache|max-age=0)") {<br>                set req.hash_always_miss = true;<br>        }</div><div>       #other Code</div><div>}</div><div><br><br>However, we've noticed that the <b><font color="#ff0000">Cache-Control: no-cache header is not being passed</font></b> to Tomcat even when there is a cache miss. <br>We're unsure why this is happening and would appreciate your assistance in understanding the cause.<br><br><b>Expected Functionality:</b><br>If the request contains <b>Cache-Control: no-cache header then it should be passed to Tomcat</b> at Backend.<br><br></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><font color="#000000">Thanks & Regards</font><div><font color="#000000">Uday Kumar</font></div></div></div></div></div>