在http缓存期间,js,css和images都存储在客户端浏览器中,以便加载看起来更快。当浏览器显示缓存中的内容时,请求是否仍然转到服务器以获取缓存中的相同内容?
答案 0 :(得分:0)
缓存的重点是避免连接到后端服务。 :)
如您所说,浏览器缓存暂时存储数据,以加快浏览器中的呈现过程。缓存数据的时间长度取决于服务器使用数据发回的response headers以及特定于浏览器的规则。
其中一个标题的示例是来自Google's explanation of HTTP Caching的 ETag :
假设自初始提取以来已经过了120秒 浏览器已发起对同一资源的新请求。首先, 浏览器检查本地缓存并找到先前的响应。 不幸的是,浏览器无法使用之前的响应,因为 响应现已过期。此时,浏览器可以发送一个 新请求并获取新的完整响应。但是,就是这样 效率低下,因为如果资源没有改变,那就没有了 有理由下载已经在缓存中的相同信息!
这是验证令牌的问题,如ETag中所述 标题,旨在解决。服务器生成并返回一个 任意令牌,通常是散列或其他指纹 该文件的内容。客户端不需要知道如何 生成指纹;它只需要将它发送到服务器上 下一个请求。如果指纹仍然相同,那么 资源没有改变,你可以跳过下载。