在控制台资源加载大小列中,我们可以看到机架和资源的大小。如果在本地直接读取缓存(from memory cache来自内存缓存)(frommdiskcache来自磁盘缓存)
Expires:设置浏览器的缓存时间。时间是的时间。从设定值可以看出这是一个日期。当浏览器收到响应时,它将检查是否有任何包含缓存头信息和资源的expires字段。再次请求时,它将检查缓存时间是否已过。否则,它将在缓存中取出,并再次被请求。
缓存控制:更多加载值
Max age=XXX:缓存内容将在XXX秒后过期,这是一个时间间隔相对时间。Public:将缓存所有内容(客户端和代理服务器都可以缓存)private:内容将仅缓存在私有缓存中(只有客户端可以缓存,代理服务器不能缓存)。无缓存:必须与服务器确认返回的响应是否已更改,然后才能使用响应满足对同一URL的后续请求。因此,如果存在适当的身份验证令牌(Etag),则缓存不会启动往返通信来验证缓存的响应。如果未更改资源,则无法避免下载任何存储:所有内容都不会缓存,或者必须在临时Internet文件中重新验证/代理重新验证:如果缓存的内容失败,则必须将请求发送到服务器/代理进行重新验证
服务器使用if modified since(last modified)和if none match(Etag)属性的值来确定缓存是否无效。
协商缓存:当浏览器确定它不是强缓存时,它将向服务器发送一个请求,以确定它是否是协商缓存。如果是,服务器返回304notmodified,浏览器从缓存加载。什么是协商缓存?
当浏览器次向服务器发送请求时,服务器返回资源,并将后一次修改的字段添加到responseheader,指示上次修改资源的时间。当浏览器再次请求此资源时,if modified since字段将添加到请求头中。如果两个字段相同,则表示资源未被修改,返回304not modified。浏览器从缓存获取资源。如果这两个字段不同,则表示资源已被修改,服务器将正常返回资源。