浏览器会自动缓存访问过的页面。当访问同一个页面请求时,浏览器不再从服务器重新下载页面,而是优先使用本地缓存中的页面。为什么要进行网页缓存从用户的角度来看,网页缓存加快了上网速度。当然,这是用户主观上认为上网速度提高了。在网络上获取的信息是有上限的,限制了用户上网的速度,缓存会造成上网速度加快的假象;2、缓存可以有效减少网络上冗余信息的传输,即如果同一个页面用户每次都刷新,服务器中的页面没有变化。如果用户刷新服务器并发送新的页面,这会造成数据冗余;3、缓存可以有效削弱瞬时拥堵现象;瞬时拥塞可能导致整个网络和服务器崩溃;尽管缓存有各种好处,但缓存不仅仅是在本地存储页面。全部缓存;为了解决这个问题,提出了cachehit的概念(cachehit的概念显然是一个奇葩的产物)。所谓缓存命中是指当一个请求所需要的页面在本地缓存中,检测到缓存的页面,如果服务器没有变化,浏览器就会使用本地缓存的页面(重新检测缓存页面的新鲜度也称为缓存页面的新鲜度,当浏览器发现本地缓存中有需要的页面时,为了判断该页面是否为最新页面,浏览器会向服务器发送请求询问页面是否是最新的,最新的依据是页面的最后修改时间,如果服务器发现页面是最新的,就会返回一个响应,如果缓存服务器单独将缓存存放在一个服务器中,就形成了一个缓存服务器,缓存服务器的拓扑结构多种多样,比如层次结构、网络结构和对等结构等,但是缓存服务器的处理流程基本相同:新鲜度页面可能会随着时间的推移而不断变化,那么如何保证页面始终是最新的呢?http协议提供文档过期时间和服务器重新生效;文件过期时间:cacahe-control:maxAge/文件的相对过期时间Expire:/文件的相对过期时间优于绝对过期时间,因为绝对过期时间依赖于计算机时钟的本地设置;文档过期服务器重新认证,但不代表文档在服务器端发生了变化,所以这时候浏览器需要向服务器重新认证,注意当服务器挂了掉线,并且缓存需要校验,缓存会返回错误信息;条件验证Http允许缓存向原始服务器发送一个条件get,将新鲜度检测和对象获取结合到一个get请求中,只有当文档与缓存文档不一致时,请求服务器才会返回一个新文档If-Modified-since:
