ios哪个浏览器可以缓存 深入理解浏览器缓存
ios哪个浏览器可以缓存 深入理解浏览器缓存
2024-06-10 04:16:53  作者:她是个贱人  网址:https://m.xinb2b.cn/know/ozq445050.html

这是关于php进阶到架构之nginx进阶学习的第篇文章:深入理解浏览器缓存,我来为大家科普一下关于ios哪个浏览器可以缓存 深入理解浏览器缓存?以下内容希望对你有帮助!

ios哪个浏览器可以缓存 深入理解浏览器缓存

ios哪个浏览器可以缓存 深入理解浏览器缓存

目录概述浏览器缓存的作用缓存读取的原理协商缓存强制缓存协商缓存与强制缓存区别小结php7进阶到架构师相关阅读概述

这是关于php进阶到架构之nginx进阶学习的第篇文章:深入理解浏览器缓存

第一篇:5分钟搞懂nginx的location匹配规则第二篇:nginx rewrite规则详解第三篇:5分钟上手nginx分流实战第四篇:Nginx跨域配置第五篇:深入理解浏览器缓存浏览器缓存的作用缓存可以减少数据传输。节省了网络带宽,从而更快的加载页面。缓存降低了服务器的要求,从而服务器更快的响应。

那么我们使用浏览器缓存,浏览器缓存的资源文件到什么地方去了呢?

那么首先来看下浏览器memory cache 和 disk cache缓存

memory cache:

它是将资源文件缓存到客户端(你的电脑或手机)内存中。等下次请求访问的时候不需要重新下载资源,而是直接从内存中读取数据。

disk cache:

它是将资源文件缓存到硬盘(你的电脑或手机磁盘)中。等下次请求的时候它是直接从硬盘中读取。

那么memory cache与disk cache的区别是什么?

memory cache(内存缓存):

退出进程时(如关闭浏览器)数据会被清除

disk cache(硬盘缓存):

退出进程时(如关闭浏览器)数据不会被清除

内存读取比硬盘中读取的速度更快。

但是我们也不能把所有数据放在内存中缓存的,

因为内存也是有限的。

缓存读取的原理

先从内存中查找对应的缓存,

如果内存中能找到就读取对应的缓存,

否则的话就从硬盘中查找对应的缓存,

如果有就读取,

否则的话,就重新网络请求。

那么浏览器缓存它又分为2种:协商缓存和强制缓存。

协商缓存

客户端向服务器端发出请求,服务端会检测是否有对应的标识,

如果没有对应的标识,服务器端会返回一个对应的标识给客户端,

客户端下次再次请求的时候,把该标识带过去,

然后服务器端会验证该标识,

如果验证通过了,则会响应304,告诉浏览器读取缓存。

如果标识没有通过,则返回请求的资源。

协商缓存的标识又有2种:ETag/if-None-Match 和 Last-Modified/if-Modify-Since

协商缓存Last-Modified/if-Modify-Since

浏览器第一次发出请求一个资源的时候,服务器会返回一个last-Modify到hearer中.

Last-Modify 含义是最后的修改时间。

当浏览器再次请求的时候,request的请求头会加上 if-Modify-Since,该值为缓存之前返回的 Last-Modify.

服务器收到if-Modify-Since后,根据资源的最后修改时间(last-Modify)和该值(if-Modify-Since)进行比较,

如果相等的话,则命中缓存,返回304,

否则, 如果 Last-Modify > if-Modify-Since,

则会给出200响应,并且更新Last-Modify为新的值。

协商缓存ETag/if-None-Match

ETag的原理和上面的last-modified是类似的。

ETag则是对当前请求的资源做一个唯一的标识。

该标识可以是一个字符串,文件的size,hash等。

只要能够合理标识资源的唯一性并能验证是否修改过就可以了。

ETag在服务器响应请求的时候,返回当前资源的唯一标识(它是由服务器生成的)。

但是只要资源有变化,ETag会重新生成的。

浏览器再下一次加载的时候会向服务器发送请求,会将上一次返回的ETag值放到request header 里的 if-None-Match里面去,服务器端只要比较客户端传来的if-None-Match值是否和自己服务器上的ETag是否一致,

如果一致说明资源未修改过,因此返回304,

如果不一致,说明修改过,因此返回200。

并且把新的Etag赋值给if-None-Match来更新该值。

last-modified 和 ETag之间对比

1. 在精度上,ETag要优先于 last-modified。

2. 在性能上,Etag要逊于Last-Modified。Last-Modified需要记录时间,而Etag需要服务器通过算法来计算出一个hash值。

3. 在优先级上,服务器校验优先考虑Etag。

强制缓存

浏览器在加载资源的时候,会先根据本地缓存资源的header中的信息(Expires 和 Cache-Control)来判断是否需要强制缓存。如果命中的话,则会直接使用缓存中的资源。否则的话,会继续向服务器发送请求。

Expires

Expires 是http1.0的规范,它的值是一个绝对时间的GMT格式的时间字符串。这个时间代表的该资源的失效时间,如果在该时间之前请求的话,则都是从缓存里面读取的。但是使用该规范时,可能会有一个缺点就是当服务器的时间和客户端的时间不一样的情况下,会导致缓存失效。

Cache-Control

是http1.1的规范,它是利用该字段max-age值进行判断的。该值是一个相对时间,比如**Cache-Control: max-age=3600,**代表该资源的有效期是3600秒。

no-cache:

需要进行协商缓存,发送请求到服务器确认是否使用缓存。

no-store:禁止使用缓存,每一次都要重新请求数据。

public:可以被所有的用户缓存,包括终端用户和 CDN 等中间代理服务器。

private:只能被终端用户的浏览器缓存,不允许 CDN 等中继缓存服务器对其缓存。

Cache-Control 与 Expires 可以在服务端配置同时启用,同时启用的时候 Cache-Control 优先级高。

协商缓存与强制缓存区别小结

协商缓存本质是通过服务器端的304实现,每次访问都需要请求服务器,然后服务器返回304,从而读取浏览器本地(内存或文件)缓存

强制缓存是通过Cache-Control和expire实现,第一次需要请求服务器,然后在服务器失效之前****无需请求服务器,直接读取浏览器本地(内存或文件)缓存。

php7进阶到架构师相关阅读

https://www.kancloud.cn/gofor/gofor

最后,欢迎大家留言补充,讨论~~~,
  • 有没有科学家在研究灵魂(科学家称灵魂出窍)
  • 2024-06-10科学家称灵魂出窍灵魂出窍,就是指自己的灵魂与意识游离于体外,跟身体分离,你感觉不到自己的身体,但是你的意识非常的清醒,你可以思考,可以感官,甚至你还可以控制自己的灵魂行动这种奇特的体验通常和癫痫、偏头痛、中风、脑瘤、。
  • 价格便宜的宠物犬品种大全(山东首次出口宠物犬)
  • 2024-06-10山东首次出口宠物犬近日,一批山东口岸出口的6只恶霸犬顺利在菲律宾通关入境,这是山东首次出口宠物犬,标志着山东地区养殖的宠物犬在国际市场实现零的突破名字这么霸气!“恶霸犬”是啥来头?这批出口的恶霸犬,是美国斗牛犬和斯塔福。
  • 苹果手机11到13有几个型号(13全系参数售价曝光)
  • 2024-06-1013全系参数售价曝光科技行业新鲜趣事一文速览,在这里你可以了解科技热点、获悉行业动态,话不多说让我们一起来看看吧~iPhone13全系参数售价曝光近日有网友爆料了一份最新版本的苹果iPhone13全系参数及售价汇总资料,。
  • 欢乐喜剧人叶逢春结局(叶逢春是谁的弟子)
  • 2024-06-10叶逢春是谁的弟子现在的喜剧通过幽默搞笑的台词能够轻而易举的将观众逗笑,或者利用煽情的音乐和舞台气氛触动观众心中最柔软的地方,虽然现在的影视剧也处处考验着演员的专业能力,但相对来说对表演基础的要求已经没有那么严格了多年。
  • 当职场小白有经验后要不要辞职(职场新人要有我是垃圾的心态)
  • 2024-06-10职场新人要有我是垃圾的心态由知乎出品的职场青年纪实观察节目《我所向往的职业啊》中,嘉宾冉高鸣在谈到自己的实习经历时说,「职场新人要有我是垃圾的心态」,杂活干巧,是可以当做沟通的渠道或者展示你自己的桥梁的这样的观点,你认同吗?做。
  • 快递暂行条例全文(禁止寄递物品管理规定)
  • 2024-06-10禁止寄递物品管理规定随着网络经济和快递业的迅猛发展,通过寄递渠道传递的物品种类和数量明显增多,其中不乏一些安全性较低、物理性质不稳定的物品掺杂其中,致使禁寄物品管理的深度和广度发生深刻变化对此,2016年12月16日,国。
  • netflixkingdom第二季(已确定于3月13日公开)
  • 2024-06-10已确定于3月13日公开Netflix剧《Kingdom》(又称《王国》或《李尸朝鲜》)第二季将于3月13日公开第二季中描绘了恐怖瘟疫席卷朝鲜土地,赵氏家族越发不可收拾的贪欲下王世子李苍无法相信任何人,在敌众我寡的情况下血拼。
  • 梅西卡塔尔世界杯经典助攻未进 梅西加冕阿根廷夺冠
  • 2024-06-10梅西卡塔尔世界杯经典助攻未进 梅西加冕阿根廷夺冠据新华社多哈12月18日电一场“封神”之战,一场载入史册的比赛此役毫无疑问是世界杯决赛史上最扣人心弦、最精彩绝伦的对决2022年卡塔尔世界杯决赛,是35岁的梅西“登基”,还是将满24岁的姆巴佩卫冕?悬。
  • 高速远近光灯什么时候使用(远近光灯到底该如何使用)
  • 2024-06-10远近光灯到底该如何使用随着现在经济的不断发展,道路上的车辆越来越多,很多时候车主需要日夜兼程的跑高速,夜间行车要比白天辛苦得多,虽然说夜间行车可以很清楚的能分辨出前方后方是否有来车,因为有车灯,但是就是因为这个车灯的问题可。