web缓存简单整理

1.什么是web缓存?

我的理解:由于处理器执行速度很快,为了避免花费大量的时间来等待网络请求资源,所以会在本地存放一些经常使用到的资源,这便是web缓存。

2. web缓存的作用?

  • 显而易见的,加快页面打开速度。
  • 减少带宽,因为资源大部分都在本地了,不用进行网络请求资源。
  • 减少服务器压力,减少频繁访问服务器。

3. web缓存有哪些?

  • 数据库缓存

避免频繁的数据库查询,将查询的数据放入内存中,下次从内存中直接返回。

  • 服务器缓存

服务器缓存一些经常会被用的资源,当多个用户访问时,因为他们共同需要访问的资源已经被缓存了,可以有效降低服务器压力。

  • 浏览器缓存

缓存一些最近用到的图片,数据,页面等,提高网页打开速度。

4. http中的缓存机制

4.1 http1.0中
  • Pragma 判断是否使用缓存
  • Expires 代表缓存的过期日期

由这两样就可以知道,是否使用缓存,还有缓存的到期时间。

4.2 http1.1中
  • Cache-Control 代替了Pragma,它有好几个参数,

    • no-store:禁止所有缓存
    • no-chche:不管缓存是否过期,都不用缓存。
    • max-age:缓存的有效时间

从上面我们会发现,我们缓存了资源,但浏览器却不知道资源是不是被更新了,是否需要加载新的资源。所以就有了下面的东西。

4.3 Last-Modified/If-Modified-Since
  • Last-Modified:表示资源的最后修改时间
  • If-Modified-Since:当资源过期的时候,浏览器就会带上这个key,value就是Last-Modified.
  • 服务器接收后进行判断,资源是否更新过了。
    • 若更新过,返回新的资源,200,和新的最后修改时间
    • 若无更新,返回304
4.4 Etag/If-None-Match

另一种判断资源是否更新过的方式

  • Etag:服务器给每个资源的唯一标识
  • If-None-Match:同样的,浏览器带上Etag标识,服务器进行判断,决定返回200,还是304.
4.5 两者的优缺点
  • Etag需要服务器运算,所以会销毁服务器性能。
  • Last-Modified以秒为单位,但有时资源会在一秒内,频繁变更的情况,这样便失去了缓存了作用。

5. cookie

  • 我们都使用的cookie,将一些数据存储到其中,然后在作为头部发送出去。

优点:

  • 键值对存储,使用简单
  • 可以配置过期的时间

缺点:

  • 大小有限制,通常只有4k.
  • 存在安全问题,cokkie可以被篡改。

6 web stroage

webStorage 里分为sessionStoragelocalStorage

  • sessionStorage:看名字就知道啦,每个session会话中都有个独立的存储空间,当会话结束就没有啦。
  • localStorage:本地的存储空间,即便浏览器关闭了,在打开时,数据也仍然存在。

7. indexdDB

浏览器提供的本地数据库,可以存储更多的数据,还可以创建索引。

  • indexedDB有一些优点:
  • 异步
  • 键值对存储
  • 事务,可以回滚。
  • 空间大呀

总结

算是简单的理解了web缓存的一些知识,这方面的文章其实挺多的,有兴趣大家可以在网上找到很多,先占个坑,下次有时间在来实操下,12咯,祝大家元旦快乐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值