亿级流量网站架构核心技术 6.7分
读书笔记 第192页
超级露

浏览器缓存是指当我们使用浏览器访问一些网站页面或者HTTP服务时,根据服务器端返回的缓存设置响应头将响应内容缓存到浏览器,下次可以直接使用缓存内容或者仅需要去服务器端验证内容是否过期即可。这样的好处是可以减少浏览器和服务器端之间来回传输的数据量,节省带宽以提升性能。

1. 服务器端响应的Last-Modified会在下次请求时,将If-Modified-Since请求头带到服务器端进行文档是否修改的验证,如果没有修改则返回304,浏览器可以直接使用缓存内容。

2. Cache-Control: max-age和Expires用于决定浏览器端内容缓存多久,即多久过期,过期后则删除缓存重新从服务器端获取最新的。另外,可以用于from cache场景。

3. HTRP/1.1规范定义的Cache-Control优先级高于HTTP/1.0规范定义的Expires。

4. 一般情况下Expires=当前系统时间+缓存时间(Cache-Control:max-age)。

5. HTTP/1.1规范定义ETag为"被请求变量的实体值",可简单理解为文档内容摘要,ETag可用来判断页面内容是否已经被修改过了。

Last-Modified与ETag同时使用时,浏览器在验证时会同时发送If-Modified-Since和If-None-Match。按照HTTP/1.1规范,如果同时使用If-Modified-Since和If-None-Match,则服务器端必需两个都验证通过后才能返回304,Nginx就是这样做的。因此,实际使用时应该根据实际情况选择。

0
《亿级流量网站架构核心技术》的全部笔记 18篇
豆瓣
免费下载 iOS / Android 版客户端