提高高性能的客户端缓存

   在客户端缓存文件可以在很大程度上减轻服务器端的压力,试想如果每次请求都从服务器上获取资源,将浪费很多流量,因此我们要在客户端缓存文件。

   那么,我们应该缓存什么样的文件呢?

1、 图片文件,图片文件一般相对文本文件来说都比较大,且一般不会修改。

2、css、js文件,这些文件能够独立为一个文件,相对改动的场合也较少。

3、静态html文件,不经常改动的静态html文件也可以做为缓存对象。

缓存文件有什么缺点吗?

       任何功能不可能是完美的,有优点必然也有缺点,缓存的缺点就是万一要修改缓存的文件,如果还用原来的文件名,则客户端不会重新获取服务器 上的资源,看到的
仍然是本地缓存的东西,因此,当要修改缓存的对象时,可以利用文件的version,来通知客户端文件发生内容修改,
如:jquery.js?version=2,这样客户端才会获取新的资源并且重新缓存文件.

     对于站点中不经常修改的静态内容(如图片,JS,CSS),可以在服务器中设置expires过期时间,控制浏览器缓存,达到有效减小带宽流量,降低服务器压力的目的。

Nginx提供便捷的支持:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|apk|tar.gz)$
        {
              expires      30d;
        }
        
location ~ .*\.(js|css)?$
        {
              expires      12h;
        }

blob.png

详细的浏览器原理介绍

发表评论