1 DNS缓存

首先明确什么是DNS----全名为Domain Name System,即域名系统
DNS解析
简单的说,通过域名,最终得到该域名对应的ip地址叫做域名解析(或主机解析)

www.zuofc.com (域名) - DNS解析 -> 111.222.33.444 (IP地址)

DNS缓存
有dns的地方,就有缓存。浏览器,操作系统、Local DNS、根域名服务器,它们都会对DNS的结果做一定程度的缓存
DNS的查询过程如下:
1.首先是搜索浏览器自身的DNS缓存,如果存在,则域名解析到此完成。
2.如果浏览器自身的缓存里面没有找到对用的条目,那么尝试读取操作系统的hosts文件是否存在对应的映射关系,如果存在,则域名解析到此完成
3.如果本地hosts文件不存在映射关系,则查找本地DNS服务器(ISP服务器,或者自己手动设置的DNS服务器,)如果存在,则域名解析到此完成。
4.如果本地DNS服务器还没有找到,它就会向根服务器发出请求,进行递归查询

2 CND缓存

全称Content Delivery Network,即内容分发网络
摘录一个形象的比喻,来理解CDN是什么。

10年前,还没有火车票代售点一说,12306.cn更是无从说起。那时候火车票还只能在火车站的售票大厅购买,而我所在的小县城并不通火车,火车票都要去市里的火车站购买,而从我家到县城再到市里,来回就是4个小时车程,简直就是浪费生命。后来就好了,小县城里出现了火车票代售点,甚至乡镇上也有了代售点,可以直接在代售点购买火车票,方便了不少,全市人民再也不用在一个点苦逼的排队买票了。

简单的理解CDN就是这些代售点(缓存服务器)的承包商,他为买票者提供了便利,帮助他们在最近的地方(最近的CDN节点)用最短的时间(最短的请求时间)买到票(拿到资源),这样去火车站售票大厅排队的人也就少了。也就减轻了售票大厅的压力(起到分流作用,减轻服务器负载压力)。
简而言之:
用户在浏览网站时,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求。

CDN边缘节点缓存策略因服务商不同而不同,但一般都会遵循http标准协议,通过http响应头中的的字段来设置CDN边缘节点数据缓存时间。

Cache-control: max-age

当浏览器向CDN节点请求数据时,CDN节点会判断缓存数据是否过期,若缓存数据并没有过期,则直接将缓存数据返回给客户端;否则,CDN节点就会向服务器发出回源请求,从服务器拉取最新数据,更新本地缓存,并将最新数据返回给客户端。 CDN服务商一般会提供基于文件后缀、目录多个维度来指定CDN缓存时间,为用户提供更精细化的缓存管理。

CDN的优势

1.CDN节点解决了跨运营商和跨域访问的问题,访问延时大大减低
2.大部分请求在CDN边缘节点完成,CDN起到了分流作用,减轻了源服务器的负载

3 浏览器缓存(http缓存)

什么时浏览器缓存?

简而言之:浏览器缓存其实就是浏览器保存通过HTTP获取的所有资源,是浏览器将网络资源存储在本地的一种行为
浏览器的三级缓存原理 (访问缓存优先级)

  1. 先在内存中查找,如果有,直接加载。
  2. 如果内存中不存在,则在硬盘中查找,如果有直接加载。
  3. 如果硬盘中也没有,那么就进行网络请求。
  4. 请求获取的资源缓存到硬盘和内存。
    浏览器缓存的优点
    1.减少了冗余的数据传输
    2.减少了服务器的负担,大大提升了网站的性能
    3.加快了客户端加载网页的速度

总结

当浏览器再次访问一个已经访问过的资源时,它会这样做:

1.看看是否命中强缓存,如果命中,就直接使用缓存了。

2.如果没有命中强缓存,就发请求到服务器检查是否命中协商缓存。

3.如果命中协商缓存,服务器会返回 304 告诉浏览器使用本地缓存。

4.否则,返回最新的资源。

参考文章:
https://www.jianshu.com/p/0764a335c292

dns缓存、cnd缓存、浏览器缓存相关推荐

  1. 如何不让浏览器读取html缓存,不让浏览器缓存index.html

    参考文档:https://www.2cto.com/ask/question/4598 location = /index.html { add_header Cache-Control " ...

  2. java 情况浏览器缓存_JavaWeb禁止浏览器缓存当前Web页面的方法

    所谓浏览器缓存,是指当第一次访问网页时,浏览器会将这些网页缓存到本地,当下一次再访问这些被缓存的网页时,浏览器就会直接从本地读取这些网页的内容,而无需再从网络上获取. 虽然浏览器提供的缓存功能可以有效 ...

  3. 【缓存】客户端(浏览器)缓存学习

    转自:https://www.cnblogs.com/tinywan/p/6067126.html    感恩 目录 客户端(浏览器)缓存的优点 客户端缓存的缺点 浏览器缓存策略 Expires Ca ...

  4. JavaScript基础之缓存机制:浏览器缓存机制

    缓存可以说是网站性能优化非常有用的一种方式.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来说,可以分为发起网络 ...

  5. 微信H5、网页、内置Web浏览器 清理缓存,微信浏览器缓存

    目录 一.写在前面: 1.浏览器缓存带来的好处: 2.浏览器缓存带来的弊端: 二.如何清除微信浏览器的缓存: 1.在IOS环境下手动清除微信缓存: 2.在Android环境下手动清除微信缓存: 三.清 ...

  6. 版本更新带来的缓存问题_浏览器缓存原理总结

    作者: Poetry 来源:http://blog.poetries.top/2019/01/02/browser-cache/ 一.浏览器缓存基本认识 分为强缓存和协商缓存 1.浏览器在加载资源时, ...

  7. 里面怎么缓存图片_浏览器缓存原理总结

    一.浏览器缓存基本认识 分为强缓存和协商缓存 1.浏览器在加载资源时,先根据这个资源的一些http header判断它是否命中强缓存,强缓存如果命中,浏览器直接从自己的缓存中读取资源,不会发请求到服务 ...

  8. html js清除缓存,js清除浏览器缓存的几种方法

    JS 缓存的问题一直都是我们又爱又恨的东西.也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当js 文件有改动的时候, ...

  9. 浏览器怎么清理缓存_Mac系统浏览器缓存清理工具

    相信不少Mac用户都在寻找一款好用的浏览器插件吧?你看这款Cookie for Mac的浏览器插件怎么样? 这款Cookie for Mac之中不但能够帮助Mac系统用户对浏览器进行安全的删除不需要的 ...

  10. 前端更新需要清空浏览器缓存_js清除浏览器缓存的几种方法

    关于浏览器缓存 浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能.但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数据.像股票类网站实时更新等,这样的网站 ...

最新文章

  1. 2021年大数据ELK(十二):Elasticsearch编程(环境准备)
  2. 还在学JVM?我都帮你总结好了(附脑图)
  3. maya导入abc动画_三维文件格式知多少 | abc、glTF、fbx、obj、dae、stl、3ds...
  4. Windows Server 2012改造成Windows8的方法(转载)
  5. 程序员如何保持身心健康
  6. MVP群聊某美国公司的应聘试题(压死九个还是一个)
  7. MySQL学习-SQL语句的分类与MySQL简单查询
  8. HttpServletRequest应用-获取请求参数及解决中文乱码
  9. 2019拓者的高清案例赠品
  10. 华为2020校招-数字化IT应用工程师-凉经
  11. tp link虚拟服务器设置,TP-Link路由器如何设置UPNP开启【设置步骤】
  12. Render函数渲染页面
  13. mac电脑循环次数多少算新_mac电池循环次数怎么计算?新版mac怎么查看剩余电量?...
  14. LittleFS - 一个高度完整的嵌入式文件系统
  15. Linux 启动时,出现give root password for maintenance处理方法
  16. 【学习笔记】Argus--H5游戏性能测试工具
  17. 线性不定方程与线性同余方程
  18. 数据库的应用(三):实例举例
  19. m车载自组织网络(Vehicular Ad-hoc Network,VANET)通信系统的matlab仿真
  20. 如何自学软件测试呢?软件测试工程师的职位要求

热门文章

  1. pyinstaller打包icon报错
  2. Beta测试应用程序完整指南
  3. 微博推广方案和网站推广方案总结
  4. CoralGloba珊瑚跨境的“全银行通道结算”,是创举还是噱头?
  5. Educoder 机器学习 第1关:基于贝叶斯决策理论的分类方法
  6. 基于麒麟SP10服务器版的Kubernetes集群安装
  7. UE4打包项目部署到Quest遇到的问题
  8. 教育培训行业市场营销推广方案分享
  9. 代码真的可以体现一个人的智商吗?
  10. 【知识碎片】python 字符串格式化输出:%d,%s,%f