从 http 协议的角度来看
F5 和 Ctrl+R 都是普通刷新,若页面之前访问过,就会发一个空请求到服务器,服务器返回 302 ,表示资源未更新,可以使用浏览器缓存。
强制刷新 (ctrl+F5) 则不管浏览器是否缓存,都要重新去源站服务器请求资源,成功则返回 200。
可以使用 chrome 开发工具查看具体过程,大概是这样一个流程,实际讲起来更复杂。