-
页面刷新时,向服务器发送的请求不同
f5触发的HTTP请求的请求头中通常包含了If-Modified-Since 或 If-None-Match字段,或者两者兼有;
crtl+f5触发的HTTP请求的请求头中没有上面的那两个头,却有Pragma: no-cache 或 Cache-Control: no-cache 字段,或者两者兼有。
-
服务器对两种方式的响应不相同
f5刷新页面方式服务端返回的是304 Not Modified,这时候浏览器使用本地缓存;
crtl+f5刷新页面的方式,服务器看到发送过来的no-cache请求,就会把最新的文件全部响应过来,不会再使用本地缓存。
-
时间戳相同时,两种方式的刷新方式不相同
时间戳相同时,也就是我们长按f5时,页面只会刷新一次,而crtl+f5会不断去请求服务器,刷新页面。
每次浏览器去刷新的时候都尽可能的去加载之前加载页面的缓存,所以f5会加载速度很快,而crtl+f5则会清理掉缓存再加载,这样可以解决很多因为浏览器缓存而存在的问题。