加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

缓存知识体系之-浏览器缓存

发布时间:2021-01-08 16:44:12 所属栏目:安全 来源:网络整理
导读:副标题#e# 《缓存知识体系之-浏览器缓存》要点: 本文介绍了缓存知识体系之-浏览器缓存,希望对您有用。如果有疑问,可以联系我们。 【上篇】 前言 现在我们把注意力关注到浏览器本身,那么我们要知道的是浏览器本质上是一个HTTP代理,它帮助用户发送HTTP请求

这里将所有后缀为gif、jpg、jpeg、png、bmp、swf这些资源设置了30天的过期时间,而将js和css设置了1个小时的过期时间.你可以继续使用firebug来观察使用expires的情况.

【下篇】

开始之前

昨天的公众号讲解的浏览器缓存的上篇,那么开始之前你可以需要了解的是在Web架构中还都有哪些缓存.刚好我准备了一个相对完整的《缓存知识体系》:https://www.unixhot.com/page/cache

前言

三种浏览器协商的办法让浏览器和我们Web服务器愉快的玩耍,我们把用户的浏览器当做我们派发到千家万户的缓存管理员,他们帮我们Web站点存放和管理缓存,并按照协商的办法给用户呈现,突然有一天有一个看似巧合而又普遍的时间打破了这一切.

如果服务器和用户浏览器的时间不一致呢?我们Web服务器在工程师的管理下可以自动更新时间,保证时钟同步,但是我们怎么保证用户本地电脑的时间都是对的呢?我们并没有办法!那这样就会带来一个问题.比如上面我们将css和js的过期时间为一个小时,但是用户的电脑比服务器时间晚了2个小时,那么用户访问Web站点每次浏览器都会认为立即过期,重新获取数据而不会使用本地缓存,所以我们需要有机制来解决这个问题.


Cache-Control

HTTP1.1中的Cache-Control出现了,用于弥补Expires的不足,通过max-age告诉浏览器缓存过期的相对时间,注意这个相对时间是相对于本地浏览器时间而设置的.

可以看到上图中.max-age的为3600秒,也就是我们在Nginx设置的一个小时.这样浏览器就会根据用户本地时间来计算一个小时后,再让缓过期.

还有一个小细节,不知道你之前是否注意到.浏览器和Web服务器之间协商的时间都是GMT时间,而我们中国实用的时间是GMT+8的时区,所以我们看到的时候比实际上少了8个小时,但是这丝毫不影响他们之间的协商.

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读