☆前端优化:浏览器缓存技术介绍

☆前端优化:浏览器缓存技术介绍,第1张

在前端开发中,性能一直都是被大家所重视的一点,然而判断一个网站的性能最直观的就是看网页打开的速度。 其中提高网页反应速度的一个方式就是使用缓存缓存技术一直一来在WEB技术体系中扮演非常重要角色,是快速且有效地提升性能的手段。

一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。

所以,缓存技术是无数WEB开发从业人员在工作过程中不可避免的一大问题。 在产品开发的时候我们总是想办法避免缓存产生,而在产品发布之时又在想策略管理缓存提升网页的访问速度 。了解浏览器的缓存命中原理,是开发WEB应用的基础,本文着眼于此,学习浏览器缓存的相关知识,总结缓存避免和缓存管理的方法,结合具体的场景说明缓存的相关问题。希望能对有需要的人有所帮助。

在实际WEB开发过程中,缓存技术会涉及到不同层、不同端,比如:用户层、系统层、代理层、前端、后端、服务端等, 每一层的缓存目标都是一致的,就是尽快返回请求数据、减少延迟 ,但每层使用的技术实现是各有不同,面对不同层、不同端的优劣,选用不同的技术来提升系统响应效率。所以,我们首先看下各层的缓存都有哪些技术,都缓存哪些数据,从整体上,对WEB的缓存技术进行了解,如下图所示:

本篇文章重点讲的就是上面红色框部分缓存内容。

当浏览器请求一个网站的时候,会加载各种各样的资源,比如:HTML文档、、CSS和JS等文件。对于一些不经常变的内容,浏览器会将他们保存在本地的文件中,下次访问相同网站的时候,直接加载这些资源,加速访问。

那么如何知晓浏览器是读取了缓存还是直接请求服务器?如下图网站来做个示例:

第一次打开该网站后,如果再次刷新页面。会发现浏览器加载的众多资源中,有一部分size有具体数值,然而还有一部分请求,比如、css和js等文件并没有显示文件大小,而是显示了 from dis cache 或者 from memory cache 字样。这就说明了,该资源直接从本地硬盘或者浏览器内存读取,而并没有请求服务器。

浏览器启用缓存至少有两点显而易见的好处: (1)减少页面加载时间;(2)减少服务器负载;

浏览器是否使用缓存、缓存多久,是由服务器控制的 。准确来说,当浏览器请求一个网页(或者其他资源)时, 服务器发回的响应的「响应头」部分的某些字段指明了有关缓存的关键信息 。下面看下,>

浏览器缓存只是计算机缓存的一种

1内存缓存
将数据存到内存
2代理服务器缓存
就是个自己找的中介。你拿东西先找中介,中介找房东,房东给中介,中介又给你。比如你需要房子钥匙,房东把钥匙放在中介那,你直接从中介那里拿钥匙。
3CDN缓存
将数据存到CDN服务器。CDN也是个中介,不过这个中介是根据中介的忙碌程度(CDN服务器忙碌程度)、跟你的距离(CDN服务器和你的距离)自动给你分配的。
4浏览器缓存( 我是个前端,只关注浏览器缓存。 )
根据>IE总是d出脚本错误提示窗口
出现此问题是因为该网页的 HTML 源代码不能使用客户端脚本(如 Microsoft JScript 或 Visual Basic 脚本)正确工作。发生此问题可能是因为以下原因之一: " 网页的 HTML 源代码中有问题。
● 您的计算机或网络上阻止了活动脚本、ActiveX 控件或 Java 小程序。Internet Explorer 或另外一种程序(如防病毒程序或防火墙)可以配置为阻止活动脚本、ActiveX 控件或 Java 小程序
● 防病毒软件配置为扫描您的“临时 Internet 文件”或“已下载的程序文件”文件夹。
● 您计算机上的脚本引擎损坏或过时。
● 您计算机上的 Internet 相关文件夹损坏。
● 您的视频卡驱动程序已损坏或者已过时。
● 您计算机上的 DirectX 组件损坏或过时。
注意:服务器端脚本 -- 如 Active Server Pages (ASP) 中的 Visual Basic 脚本 -- 运行在 Web 服务器上。因服务器端脚本故障而发生的脚本错误不在 Internet Explorer 中生成错误消息,但也可能会创建一个不能正确显示或工作的网页。
一、错误特征:
行: 247 字符: 2 错误: 拒绝访问 代码: 0
二、解决方案
1、清除一下IE浏览器的缓存,点IE上的工具——然后再选择最下面的Internet选项,再点Internet删除文件(记得勾上删除所有脱机内容),确定后再重新打开IE浏览器试试,同时请确认您使用的是IE60及以上版本。
2、您的网页上清缓存,在网页上选择工具->Interner选项->删除Cookies和删除文件,然后再确定。
3、请您点击IE浏览器中的“工具”,选择“internet选项”,进入“安全”页面,点击“自定义级别”,将您的安全设置设为“低”。
4、清空一下IE浏览器的cookies文件,在IE浏览器中设置“禁止自动脚本更新”,并不要选择“禁止运行ActiveX控件”,然后再尝试 *** 作。
三、总结
1、错误类型不固定 行: 247 字符: 2 错误: 拒绝访问 代码: 0 数字部分都是可变的。
2、解决方案中的4条不用都改,我的错误只用了1、2条就解决了。
3、错误发生原因没有做解释,因为我也搞不懂,很复杂而且需要一定专业知识才能搞懂,写在这也没什么必要,因为我们的目的是解决这一错误,能正常访问网页就OK了。
如果是打开IE上网时d出,属正常现象,可以在IE-工具-高级选项中选择"禁用脚本调试";如果还是不行,就把“显示每个脚本的错误通知”前的对号去掉,就不会出现了!
因为现在的网页都使用了大量的脚本,写错了也很正常,把脚本错误通知去掉就可以了!
也是在IE的高级选项中找

百度知道
防火墙限制IP导致无法远程登录WEB服务器?服展开
kussa
TA获得超过107个赞
关注
成为第3位粉丝
也许不是防火墙的问题,从症状上看很像是受到ARP攻击,建议用以下方法检测:
1换一台与管理者机器同一网段的其它计算机,尝试浏览和远程登陆服务器(如有服务器上绑定了管理IP记得修改,不过从你的描述中似乎不存在这个问题),若没有问题,证明原来使用的机器有问题(但不是IP规则的问题,因为重新获得IP后可以访问一阵子的),更新系统补丁,查杀病毒或干脆重装系统(不推荐最后一种)。若问题仍然存在,进入步骤2。
2尝试使用QQ、浏览其它网页,看是不是能正常访问,若是出现经常断网,重新获取IP后可以使用一段时间,但不久又会断网的现象,那么内网中肯定存在ARP攻击,如果条件允许的话,建议对所有机器进行安全检查和处理。若不存在这个问题,其它网络应用正常,仅仅是无法管理和访问服务器,请进入步骤3。
3到这一步,才可以基本判断出问题很可能出在服务器上,但从描述中换一个IP仍可访问的现象来看,应该不是规则问题,可能是防火墙设置了自动判断入侵并予以保护的功能(IDS、IPS),检查防火墙的设置,看有没有这类设置(一般服务器用的防火墙都有这类功能的),若有,暂时关掉这类功能,看问题是否仍然存在。若关掉这类功能问题就解决了,那么看来你的防火墙认为你的机器有攻击行为了,无风不起浪,检查一下到底是防火墙设置得太敏感还是你的机器的确受某些而已软件的影响攻击了服务器,比如狂ping服务器(ping flood)、SYN flood、arp攻击等等。
4若仍然没解决问题,请留言,我和你进一步联系以获取更多的信息。
总之,看了你的描述中,我认为问题肯定和防火墙有关(因为关掉防火墙就没有问题了),但不是防火墙的基本功能(访问规则设置)导致无法访问和管理(因为换一个IP就没问题了),所以我想很可能是防火墙入侵检测方面的功能在起作用,但我没有更多的信息,只能这样回答了。另外,我没有看出服务器和你的管理机器是否在同一个网段,我就暂时理解成是。
回答于 2007-04-28
抢首赞
看YY直播,根本停不下来
00:27
YY版本8171
广州津虹网络传媒有限公司
隐私
权限
立即下载
YY广告
看YY直播,根本停不下来
00:18
YY版本8171
广州津虹网络传媒有限公司
隐私
权限
立即下载
YY广告
大家还在搜
怎样改ip地址
网络防火墙
防火墙安装
贵阳微乐捉鸡麻将下载安装
工商代办
计算机专业学什么好
永州跑胡子下载安装
什么是牛皮廨
降低防火墙安全等级,购物就上淘宝,超值低价,品牌汇聚!
降低防火墙安全等级,淘宝热卖选好货,超高品质还便宜!轻松购物,退换无忧,放心购物!流行爆款,好物众多,你的不二之选!购物上淘宝,一站搞定。淘!我喜欢!
广告
无法连接远程mysql数据库服务器,高手请进!
先测试是否能够ping通该机,很多防火墙设置会阻止网络访问。开始〉运行ping 19216802 -t显示replay from 19216802: bytes=32 time<1ms TTL=255则正常再通过以上 *** 作,一步步解决问题
cn_cnb
3点赞1评论
更多专家
防火墙限制IP导致无法远程登录WEB服务器?服务器高手请进!
专家1对1在线解答问题
5分钟内响应 | 万名专业答主
马上提问
最美的花火 咨询一个电子数码问题,并发表了好评
lanqiuwangzi 咨询一个电子数码问题,并发表了好评
garlic 咨询一个电子数码问题,并发表了好评
1888493 咨询一个电子数码问题,并发表了好评
篮球大图 咨询一个电子数码问题,并发表了好评
动物乐园 咨询一个电子数码问题,并发表了好评
AKA 咨询一个电子数码问题,并发表了好评
WEB服务器缓存问题,高手请进
如需要网站缓存服务器,可以试用下Fikker,Fikker 是国内第一款面向广大站长的专业级网站加速服务器软件,全界面化管理,利用页面缓存技术(webcache),网站管理员或开发人员通过 Fikker 管理平台将指定的页面缓存起来,其他用户在访问相同页面时候,就不需要网站读取数据库后再生成页面了,Fikker 直接返回用户需要的页面,平均响应速度提升 10 倍以上;另外 Fikker 通过 gzip 将页面(html,asp,php,css,js)压缩起来,减少了传输尺寸,提高传输效率和减少带宽占用。
百度网友f8a1e4fa9
1855浏览
淘宝网-甲级防火墙品牌汇聚,淘我喜欢!
淘宝热卖广告
2022新版防火墙行业报告
最近1小时前有人申请相关服务
北京中经博远信息咨广告
全部

在前端开发中,性能是一个永恒的话题,没有最好,只有更好。判断一个网站性能好坏,一个直入眼观的即是网页的反应速度,有一个方式就是使用缓存,一个优秀的缓存策略可以缩短网页请求的时间,减少延迟,并且网页可以重复利用,还可以减少带宽,降低网络负荷。

1: 为什么需要缓存?

a:缓存可以减少用户等待时间,提升用户体验

b:减少网络带宽消耗

c:降低服务器压力

Note:缓存使用不当,也会造成‘脏数据’问题

2:常见的缓存类型

强缓存 -

Expires服务器端设置,表示该资源的过期时间,会有弊端,客户端时间和服务器时间不一致的问题。

Cache-Control:max-age表示缓存资源的最大生命周期,单位是秒

所以Expires 结合 Cache-Control 一起使用,大型网站中一般比较适用

协商缓存-

Last-Modified:值为资源的最后更新时间,随服务器response返回

If-Modified-Since:通过比较两个时间来判断资源在两次请求期间是否有过修改,如果没有,则命中协商缓存

Etag:表示资源内容的唯一标识,即资源的消息摘要

If-None-Match:服务器通过比较请求头中的If-None-Match与当前资源的Etag是否一致来判断资源是否在两次请求期间有过修改

3:缓存流程图示:

a:浏览器会先检测强缓存类型(Cache-Control 或者 Expires)是否有效;命中直接浏览器本地获取缓存资源

b:未命中。服务器会根据请求头Request Header验证这个资源是否命中协商缓存,称之为>DNS主服务器,这是主要的服务器,它在内存和磁盘上都保持有整个数据库的拷贝。如果系统崩溃,该数据库能重载到内存中。
DNS辅服务器,起辅助的作用,它获得一份来自主DNS服务器的数据库备份。当主服务器作修改时,辅服务器也要求作相应修改。
DNS缓存服务器,用来存储网络上用户需要的网页和内容的网络服务器。
以上在百度上找的,希望能帮到LZ


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10241079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存