为了提高网页的浏览速度,在客户端到服务器端的各个节点其实都是做了缓存的:
1, HTTP代理,如果你的浏览器设置了代理的话,那么代理服务器很可能会对网页进行cache,比如你访问了网页A,同事刚好又去访问A,那么就不用两次都去服务器拉取了。
2,ISP:ISP为了提高效率,通常也会进行缓存。
3,服务器镜像:对不同地区的用户请求跳转倒不同的服务器,对于某些访问过大的,比如图片等,可以分很多服务器存放,提高效率。
缓存是好事情,但缓存多久才合适呢?太短,效率不高。太久,怕网页内容已经变化了,没有及时更新。现在一般会采用以下策略:
1)根据网页的Last Modified Time,比如ISP拿到的网页,发现该网页是1个月前更新的,那么ISP可以认为其下次更新在1个月后,可以缓存1个月。
2)在缓存时间快到的时候,向服务器发出一个查询请求,询问是否已经更新,服务器告诉它还没有更新,这样就不用再次下载了。
3)对于一些动态脚本的网页,不进行缓存,服务器可以通过设置一些参数来进行控制。