web 缓存之浏览器缓存

一、都有哪几种缓存

web缓存分为很多种,比如数据库缓存、代理服务器缓存、CDN缓存,以及浏览器缓存。

二、浏览器缓存

几种不同缓存的使用

1、资源加载的顺序

先查找内存缓存、然后查找硬盘缓存、然后发起网络请求加载资源,并依据响应头进行缓存工作

2、status code 的区别

200 memory :  不访问服务器,关闭浏览器后资源被释放 ,强缓存

200 disk:不访问服务器,关闭浏览器后资源依然存在,强缓存

304 not modify: 访问服务器,发现数据没有更新,服务器返回此状态码。然后从缓存中读取数据。协商缓存

200 : 返回资源 size 从服务器端下载最新资源

3、memory 和 disk 的使用场景

一般 js 常使用 memory,而 css 常使用 disk。因为,如果把脚本存在磁盘中,在执行时会把该脚本从磁盘中提取到缓存中来,这样的IO开销比较大,有可能会导致浏览器失去响应。

三、浏览器缓存的使用原理

1、meta 标签

<meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />

有浏览器不兼容,所以大部分是使用响应头的

2、http response header 

优先级如下:

a、ETag/If-None-Match + Cache-Control

b、Last-Modified/If-Modified-Since + Cache-Control

a、Expires   Cache-Control选择更多,设置也更细致,且使用了相对时间,所以比 http 1.0 中的 Expires 优先级更高

cache-control 流程

参考: https://segmentfault.com/a/1190000008547416

            http://www.cnblogs.com/lyzg/p/5125934.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、前言 缓存可以说是性能优化中简单高效的一种优化方式了。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,...
    浪里行舟阅读 206,849评论 46 521
  • 什么是web缓存 所谓缓存就是再copy一份数据的副本(可能是html页面,图片,文件),根据副本的存放位置不同,...
    Diogoxiang阅读 294评论 0 1
  • 浏览器对于请求资源, 流程如图所示: 可以看到浏览器的缓存机制分为两个部分: 1、当前缓存是否过期? 2、服务器中...
    zhoulujun阅读 1,222评论 0 3
  • 今天看奇舞团推了篇文章讲缓存策略的,讲的挺不错,记录一下。 原文地址就在下面。 总结: 缓存分为强缓存和协商缓存...
    NowhereToRun阅读 4,871评论 1 7
  • 浪尖上的舞者 -- bethany 名字应该拼错了,不过读音就是这个。本片的主角。 当视频因卡顿,停在 大海中单臂...
    花痴书阅读 421评论 0 0