浅析web缓存

缓存含义


缓存即是对某些请求过的网络资源(如html页面,js文件,图片等数据)在本地储存,当访问同一个URL时,就可以直接使用本地已经存储的缓存。

缓存的意义


1.减少流量的使用

当我们访问同一个URL时,如果没有本地缓存,我们就只能不停地向服务器请求相同的内容,这样就会不断地消耗我们的流量,而如果使用了缓存,我们就可以在判断当地有该URL对应的缓存时时使用缓存(前提是缓存还未过期)

2.降低服务器的压力

既然可以使用本地的缓存资源,就可以减少对于服务器的请求,这样自然就会降低对服务器的压力

3.减少用户的等待时间

关于这个很清晰的一点就是当我们打开某个有很多图片的页面,第一次打开的时候总会有一定的延迟才会显示出图片,而当我们第二次打开页面时,可以直接使用本地缓存的图片,不必再向服务器请求这些图片资源,图片的加载速度自然会变快,用户就可以不用等待这些资源加载的时间

浏览器请求文件过程


1.浏览器会创建一个到Web缓存器的TCP连接,并向web缓存器中的文件发送一个HTTP请求

2.Web缓存器检查本地是否储存了请求的文件的副本,若有的话,则使用HTTP响应报文返回该文件

3.若没有请求文件的副本,则建立与文件所在的源服务器的TCP连接,从Web缓存器向该服务器发送对该文件的HTTP请求,服务器收到请求后向Web缓存器发送带有该文件的HTTP响应

4.Web缓存器接收到该响应后在本地存储一份副本,并向浏览器发送带有该副本的HTTP响应

!要注意的是,在这个过程中,Web缓存器既是服务器又是客户端,在接收浏览器请求和返回响应时作为服务器,在向源服务器发送请求和获取响应时作为客户端。

使用缓存带来的新问题和解决

如上面的请求文件过程,我们可以看到在请求资源的过程中,如果使用Web缓存,可以给我们带来一些好处,但同样也带来一些问题,假如Web缓存器中有本地副本的情况下我们就使用本地副本,那当源服务器的内容更新时,我们使用的副本不就过期了吗,要解决这个问题,我们可以使用条件GET方法

在使用GET方法时,响应报文会带有一个Last-Modified首部行,其值为请求服务器资源时的时间,当我们下一次请求时,在请求报文中加入If-Modified-since首部行,其值为上一次请求从服务器返回的响应报文的Last-Modified首部行的值,意思为仅当这个时间后资源发生更新,就向源服务器重新请求资源,否则就使用Web缓存器中的副本。

学习自JamesF.Kurose的《计算机网络(自顶向下方法)》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值