读书人

WPO基础:浏览器缓存、条件GET请求跟E

发布时间: 2013-11-09 17:06:34 作者: rapoo

WPO基础:浏览器缓存、条件GET请求和Expires Header


我们常常会有如下经验:我第一次访问某个网页的时候,花费了10秒钟,第二次进去的时候,5秒钟内页面就完全打开了。

为什么会这样呢?我们用浏览器访问某个图片logo.jpg作为例子来说明。我们的浏览器第一次访问网页的时候,浏览器通过互联网络向网站服务器发起一个HTTP请求。服务器得到请求后,将图片logo.jpg 反馈给浏览器。浏览器同时将logo.jpg写入浏览器缓存。

?

图:浏览器第一次访问 logo.jpg

WPO基础:浏览器缓存、条件GET请求跟Expires Header

图:浏览器第二次访问 logo.jpg

WPO基础:浏览器缓存、条件GET请求跟Expires Header

第二次访问logo.jpg的时候,浏览器会检查缓存,并且发现缓存里面存在 logo.jpg。 为了提高效率,浏览器会像服务器发送一个条件GET请求。如果logo.jpg没发生变化,服务器就会反馈一个很小的头,告诉浏览器不用从服务器下载,直接用缓存的logo.jpg就可以啦。也就是说,第二次请求 logo.jpg的时候,因为服务器反馈的不是完整的logo.jpg,而只是反馈了一个很小的头,真正的logo.jpg直接从浏览器缓存获取,所以节省了很多时间。

?

但我们观察到,在第二次访问logo.jpg的时候,浏览器和服务器之间还是有个一来一回和服务器互相喊话的过程。这个过程好像消耗不了多长时间,但如果我的网店首页有100张图片,每张图片都有一个来回,就是100个来回,也是一笔不小的时间消耗。有人会发问:

读书人网 >Web前端

热点推荐