HTTP缓存介绍
HTTP缓存是一种通过存储网络资源的副本,以减少对原始服务器请求的技术。当客户端再次请求相同资源时,如果该资源未过期,服务器可以直接从本地缓存中提供响应,而无需再次从原始服务器获取。这大大减少了网络延迟,提高了加载速度,并减轻了服务器的负载。HTTP缓存机制是优化web性能的重要手段,也是优化用户体验的重要一环
HTTP缓存主要依赖于两个HTTP头字段:Expires和Cache-Control。Expires字段定义了资源在缓存中的过期时间,而Cache-Control字段提供了一种更灵活的缓存控制机制,包括指令如max-age、public、private等。
HTTP缓存可以分为两种类型:强缓存和协商缓存。强缓存由浏览器直接控制,当资源未过期时,浏览器会直接使用缓存的副本,而不向服务器发送请求。协商缓存则是在资源过期后,浏览器会向服务器发送请求,以验证缓存的副本是否仍然有效。强缓存通过 HTTP 头部直接判断是否命中,而协商缓存则需要与服务器进行验证。了解这两种缓存机制的工作原理,能帮助开发者更好地优化网页性能。
- 强缓存:
Expires: 绝对时间。
Cache-Control: max-age。
- 协商缓存:
Last-Modified 和 If-Modified-Since。
ETag 和 If-None-Match。
使用缓存的优点
-
缓存减少了冗余的数据传输,因为毕竟每次http事务请求的东西都是一样的时候,多次发送同样的数据是不必要和冗余的!
-
缓存缓解了网络瓶颈的问题,不需要更多的带宽就能够更快地加载页面!
-
缓存降低了对原始服务器的要求,因为想象一下,从一个性能很差劲的原始服务器和从一个性能和牛逼的缓存服务器请求事务,肯定会弥补服务器的缺点的,同时也会减少服务器过载情况,因为大部分请求都由缓存代劳处理了!
-
缓存降低了距离时延,因为从较远的地方加载页面会更慢一些!
冗余的数据传输
- 每次都从原始服务器拿数据,那么带来的后果就是:多次发送重复的数据浪费流量、耗费昂贵的网络带宽从而降低传输速率、加大服务器的负载。而有了缓存之后这些问题都可以迎刃而解!
带宽瓶颈
-
带宽瓶颈说明的问题:很多网络为本地客户端配置的带宽要比远程服务器配置的带宽要宽,如果在这种状况下客户端去请求远程服务器,那么客户端将会以一种的较低的速度去请求服务端,从而没有发挥出客户端带宽宽的长处!如果在客户端方向配置一个高速缓存服务器,那么就可以很快的得到响应,由此也看出带宽对报文传输速率的影响!
瞬间拥塞 -
瞬间拥塞描述的是这样一种情况:一个爆炸性的新闻和热点事件,如果再没有配置缓存的情况下,那么在短时间之内,服务器将会收到突变的请求增长,负荷会爆炸