浏览器缓存利与弊——我到底该清理吗?

也不知是一件具体的什么事情让我写这个了,但是反正自己作为使用者和站长,仔细想了想这个问题,还是挺纠结的。

浏览器缓存,说通俗点就是浏览器把你访问过的东西存一下,这样下次再开会快一点,但是随着CDN的普及以及多数人生活节奏也没用快到某种境界,作为一个使用者,反正至少我觉得1秒开跟3秒开没什么区别,不知道各位都是什么看法呢?
于是那么问题来了,浏览器缓存真的能让你开“曾看过”的网站变快吗?或者说,为了这一点点变快,你付出的代价值吗?
下面先说使用者的部分:
对于使用者,浏览器缓存的优点,大概只有更快和更省流量了
但是缺点,似乎还是蛮多的
(这里先吐槽一下Chrome的网站标记)
2017年从Chrome 55起,所有只要不是全页面所有资源都使用SSL连接的网页都会被Chrome标记为“不安全”
即使你页面里用贴外链的图也是如此,所以全站SSL但是唯独贴图还在用七牛HTTP的我好尴尬啊。
(但是,真的是这样吗?)
Google这种强制标记真的让我好不爽啊,于是仔细认真想了一番,
如果他真的是认真的,那么,浏览器缓存在本机的存储也不是加密的啊
我猜安全标识大概会长这个样子:

浏览器缓存并不安全,呐
然后是,浏览器缓存造成的庞大的内存占用和存储占用,很多人以为浏览器缓存只是存盘,但是其实浏览器会根据需要把部分内容缓存到内存里,毕竟在相同机器上内存读取速度一定是比存储介质快得多的。
“这什么破机器,多开几个网页都卡”大概就是这么来的,浏览器的“按需”缓存到内存或磁盘,可是不管你其他东西的,一般情况下,像main.css之类、图片、字体等较大的文件都会缓存到内存,【彻底】退出浏览器时才会存盘释放内存,所以当你多开一些内容较多的网站的时候内存占用就会明显上升,准确的说,不是你正开着多少网页,而是从你这次启动浏览器到现在开过多少网页,只要内存占用没达到一定阈值(这个取决于浏览器),内存缓存就不会被存盘释放,再加上你看网页时浏览器处于前台运行,即使真的内存不足,一般也不会轻易释放浏览器使用的那部分。

一张图总结我上面提到的,从图中可以看出,内存缓存的响应时间远小于磁盘缓存,但都是大文件。

那么接下来就该说磁盘缓存了,磁盘缓存,这可真的有时候未必比直接访问快,比如你磁盘正在进行大文件读写的情况,这个时候,磁盘对其他文件的相应速度明显下降,400ms左右都非常正常,但是400ms意味着什么,假设你访问某一网站静态文件的带宽有3Mbps,那400ms的时间足够加载一张150KB大小的图片,就算减去100ms左右的高延迟,那就是110KB左右,一张图110KB的话,基本已经是比较清晰的图片了,那么此时,磁盘缓存丝毫没有任何优势,反而只会浪费你的空间。

复制文件的时候随手从任务管理器截了个图,读写时磁盘相应时间其实不比网络好,如果老旧硬盘会更明显一些。
然后是清理与过期机制,目前浏览器缓存的自动清理,只能依靠网页header里给定的缓存规则检查是否过期,也就是说,浏览器“自动清理”其实不会为你释放多少空间,因为只有你再去打开某一网页时,浏览器才会检查缓存是否过期,可是,过期了虽然会把旧的删掉,但是新的也会随手给你缓存上,所以几乎就不会减少什么。浏览器自带的手动清理,电脑版虽然把缓存、数据、cookie分离开,但是只能按类型和最近多长时间清理全部网站的;手机版能详细管理网站数据的除了Chrome和Safari就已经不多了,虽然能分网站独立管理,但是每个网站如果要清除就是缓存cookie一块清,也就是说,保持登录状态什么的就要说再见了。

作为站长调试的时候难免要清浏览器缓存,所以我这缓存也是保留不了多久,但是就已经300多M,留着太占地方,却又不敢轻易清掉。
最后一点是内容更新问题,嗯讲完这个问题就可以平滑的从使用者视角过渡到站长视角了
“我已经换图了,你刷新一下”
“刷新了,还是没变化”
前面刚讲到,缓存的更新依靠header,如果一些东西内容已经更新,但是header却没有任何改动,那旧的缓存可能还没到期,也就是说,你可能看不到最新的页面,有的人不在意,但有些人有些时候有些事情,还是挺重要的。
对于磁盘缓存的问题,隐身模式/无痕浏览或许是一个不错的折中方案,像刷新闻一类不需要登录、看完很大可能就不会再看一遍的东西再合适不过,但是对于刷微博(只是一时找不到好的例子,毕竟我赌你也很少刷网页版,大概都用客户端吧)等需要登录来看的页面,隐身模式每次都得手动登录只会显得太过麻烦。
但是你别忘了缓存的另一个优点呐,省流量啊
毕竟只要没过期就从本地加载,或许你觉得一个网站的logo、css、字体什么的没多大,但是如果没有缓存,一天刷百次就得有几十M出去了
“告诉你个秘密,其实看网页很吃流量”
中转压缩+缓存进行的节省流量,从30%吹到70%的都见过,这并不是骗人,但是这理论遭不住有些人一天不一键清理就难受的做法。

在流量、内存、空间四大问题面前,不我没有说错就是四大问题,毕竟这三个问题如果你不嫌麻烦充分利用缓存,趋利避害,那都不是事,可是第四大问题,就是一个字,懒!
看完通篇,你清缓存的习惯打算改一改了吗?
————使用者篇 END————
站长篇待续

3 responses on “浏览器缓存利与弊——我到底该清理吗?

  1. 我用火狐不喜欢清除缓存,账号密码多,清除缓存麻烦

    1. Yandex

      缓存和cookie不是一个东西哦

M进行回复 取消回复