浏览器缓存和服务器缓存
浏览器缓存即http缓存;浏览器缓存根据是否需要向服务器重新发起HTTP请求将缓存过程分为两个部分,分别是 强制缓存 和 协商缓存 。
浏览器第一次请求资源的时候服务器会告诉客户端是否应该缓存资源,根据响应报文中HTTP头的缓存标识,决定是否缓存结果,是则将请求结果和缓存标识存入浏览器缓存中。如下图:
1强制缓存 :浏览器会对缓存进行查找,并根据一定的规则确定是否使用缓存。
强制缓存的缓存规则?
HTTP/10 Expires 这个字段是绝对时间,比如2018年6月30日12:30,然后在这个时间点之前的请求都会使用浏览器缓存,除非清除了缓存。
这个字段的缺点就是只会同步客户端的时间,这就有可能修改客户端时间导致缓存失效。
HTTP/11 cache-Control 这个是11的时候替换Expires的,它会有几种取值:
public :所有内容都将被缓存(客户端和代理服务器都可缓存)
private :所有内容只有客户端可以缓存, Cache-Control的默认取值
no-cache :客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证决定
no-store :所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存
max-age=xxx (xxx is numeric) :缓存内容将在xxx秒后失效
比如max-age=500,则在500秒内再次请求会直接只用缓存。
优先性:cache-Control > Expires
如果同时存在,cache-Control会覆盖Expires。
这个字段的缺点就是:
如果资源更新的速度是秒以下单位,那么该缓存是不能被使用的,因为它的时间单位最低是秒。
如果文件是通过服务器动态生成的,那么该方法的更新时间永远是生成的时间,尽管文件可能没有变化,所以起不到缓存的作用。
上图中浏览器缓存中存在该资源的缓存结果,并且没有失效,就会直接使用缓存的内容。
上图中浏览器缓存中没有该资源的缓存结果和标识,就会直接向服务器发起HTTP请求。
2协商缓存: 浏览器的强制缓存失效后(时间过期),浏览器携带缓存标识请求服务器,由服务器决定是否使用缓存。
服务器决定的规则?
控制协商缓存的字段有 Last-Modified / If-Modified-Since 和 Etag / If-None-Match。
①Last-Modified 是服务器返回给浏览器的本资源的最后修改时间。
当下次再次请求的时候,浏览器会在请求头中带 If-Modified-Since ,即上次请求下来的 Last-Modified 的值,
然后服务器会用这个值和该资源最后修改的时间比较,如果最后修改时间大于这个值,则会重新请求该资源,返回状态码200。
如果这个值和最后修改时间相等,则会返回304,告诉浏览器继续使用缓存。
② Etag 是服务器返回的一个hash值。
当下次再次请求的时候,浏览器会在请求头中带 If-None-Match ,即上次请求下来的 Etag 值,
然后服务器会用这个值和该资源在服务器的 Etag 值比较,如果一致则会返回304,继续使用缓存;如果不一致,则会重新请求,返回200。
二、服务器缓存
上面是一个简单的流程图:
用户1访问A页面,服务器解析A页面返回给用户1,同时在服务器内存上做一定映射,把A页面缓存在硬盘上面
用户2访问A页面,服务器直接根据内存上的映射找到对应的页面缓存,直接返回给用户2,这样就减少了服务器对同一页面的重复解析
服务器缓存和浏览器缓存的区别:
服务器缓存是把页面缓存到服务器上的硬盘里,而浏览器缓存是把页面缓存到用户自己的电脑里
Nginx服务器
Nginx是一个高性能的HTTP和反向代理服务器。具有非常多的优越性:
在连接高并发的情况下,Nginx是Apache服务器不错的替代品,Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。
Nginx提供了expires、etag、if-modified-since指令来实现浏览器缓存控制。
nginx -s reload#重新加载配置文件
nginx -s reopen#重新打开log文件
nginx -s stop#快速关闭nginx服务
nginx -s quit #优雅的关闭nginx服务,等待工作进程处理完所有的请求
Nginx设置静态文件的缓存过期时间
location ~\(js|css|html|png|jpg)$ {
expires 3d;
}
expires 3d; //表示缓存3天
expires 3h; //表示缓存3小时
expires max; //表示缓存10年
expires -1; //表示永远过期。
如果设置为-1在js、css等静态文件在没有修改的情况下返回的是http 304,如果修改返回http 200
对于静态资源会自动添加ETag,可以通过添加etag off指令禁止生成ETag。如果是静态文件,那么Last-Modified值为文件的最后修改时间。
在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存或者强制刷新来测试的烦恼,提供下apache不缓存配置和nginx不缓存配置的设置。在常用的缓存设置里面有两种方式,都是使用add_header来设置:分别为Cache-Control和Pragma。
location ~ \(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
add_header Pragma no-cache;
}
nginx gzip压缩
使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。
主要在nginx服务端将页面进行压缩,然后在浏览器端进行解压和解析,
目前大多数流行的浏览器都迟滞gzip格式的压缩,所以不用担心。
默认情况下,Nginx的gzip压缩是关闭的,同时,Nginx默认只对text/html进行压缩
gzip on;
ersio #开启gzip压缩输出
gzip_http_vn 10 ;#默认11
#其中的gzip_http_version的设置,它的默认值是11,就是说对HTTP/11协议的请求才会进行gzip压缩
#如果我们使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间是用HTTP/10协议通信的。
gzip_vary on ;
#和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,
#所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
gzip_comp_level 6;
#设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大 1-9
gzip_proxied any;
#Ngnix作为反向代理的时候启用
#expample:gzip_proxied no-cache;
# off – 关闭所有的代理结果数据压缩
# expired – 启用压缩,如果header中包含”Expires”头信息
# no-cache – 启用压缩,如果header中包含”Cache-Control:no-cache”头信息
# no-store – 启用压缩,如果header中包含”Cache-Control:no-store”头信息
# private – 启用压缩,如果header中包含”Cache-Control:private”头信息
# no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息
# no_etag – 启用压缩,如果header中包含“ETag”头信息
# auth – 启用压缩,如果header中包含“Authorization”头信息
# any – 无条件压缩所有结果数据
gzip_types text/html ;#压缩的文件类型
#设置需要压缩的MIME类型,非设置值不进行压缩
#param:text/html|application/x-javascript|text/css|application/xml
gzip_buffers 16 8k; #设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
#设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
# param1:int 增加的倍数
# param2:int(k) 后面单位是k
# example: gzip_buffers 4 8k;
# Disable gzip for certain browsers
gzip_disable “MSIE [1-6](!SV1)”; #ie6不支持gzip,需要禁用掉ie6
第一个问题:
数据库缓存
我们知道当网站访问量很大的时候,用户直接去访问你的数据库,这个时候数据库压力很大,往往会导致你的数据服务器蹦了,或者服务器崩了。
那么这个时候的解决方案从数据库来说,就是加上缓存层,那么常用的缓存就是redis,memcache了,或者有人使用文件。
第二个问题:
服务器端的缓存:
文件缓存属于服务器上的,redis或者memcache也是属于你服务器端的缓存
第三个问题:
浏览器缓存,我们知道当你访问网页的时候,浏览器会去给你缓存网页,会把你网页的静态载入文件去缓存,你按f5刷新实际上第二次访问的是你的浏览器的缓存,当然这个可以根据header头的参数去改动,你按ctrl+f5就是强制刷新式的访问,这个时候就会重新去请求服务器拿文件了!
网站后台缓存 是网站程序产生的一些临时文件,如PHP程序最喜欢。这个文件一般是在网站程序目录。
服务器缓存是服务器为了提升速度而产生的一些临时文件,如gzip的文件,一般是防在特定的目录。
浏览器缓存是用户本地浏览器缓存的网页文件,比如我们第一次打开一个网站速度会慢一些,第二次打开就很快,就是缓存在了本地。
我们可在命令提示符下使用命令来清除DNS客户端缓存中的信息。在客户端执行"Ipconfig/flushdns"命令,出现盘符提示后,再执行"ping "命令即可解决问题。
值得我们注意的是,在“管理工具”中打开“服务”工具,找到“DNS Client”项,停止该服务后在客户端就不会缓存DNS查询信息,这样在DNS服务器上所做的修改在客户端重新查询时就能立即反映出来。
当域名解析有问题时,可能是DNS服务器更新了此域名的IP,而与本地DNS缓存中存储的信息对应不上,从而造成域名解析有问题,此时就需要更新本地的DNS本地缓存,简单地清除本地的DNS本地缓存就行了。
1、在运行中输入cmd,然后输入ipconfig /flushdns即可。
2、将系统服务中的DNS CLIENT服务停止,可以不在本地存储DNS查询信息。
3、关闭IE,然后清除历史记录或restart机器。
三种方法均可立即正确解析域名。在用户间共享ODBC连接 2000支持开放数据库连接(ODBC),一个由微软开发的标准机制,它能够使客户不用在本地安装DBMS就可以访问由各种数据库管理系统创建的数据库。
例如,你可以在一台服务器上创建一个ODBC连接使得从Web访问一个产品数据库。以IIS为宿主系统的Web页面,可以包含必要的调用来访问ODBC连接和底层数据。
2000支持三种ODBC数据源名字(DSN):系统、用户和文件。 2000的系统和用户DSN存储在注册表中。而文件DSN则是一个后缀名为dsn的一个文件。
文件DSN的一般用法是为本地应用程序提供数据库连接,比如说Excel或者Access。使用文件夹DSN的优点是你可以轻易地在用户之间共享它,可以通过网络共享或者拷贝DSN文件到每个用户的计算机上。
要在用户间共享文件DSN,使用控制面板中管理工具小程序下的数据源小程序首先创建DSN,然后将DSN放到一个用户可以访问的地方。用户必须添加DSN文件夹路径到他们相应的应用程序设置当中。
例如,如果用户使用Excel,选择数据 导入外部数据 新建数据库查询。在选择数据源对话框中,点击选项,输入共享DSN文件夹的路径,然后点击确实关闭对话框。然后其它用户在应用程序中就可以使用DSN了。
使用scavenging清除DNS
2000的DNS服务支持scavenging特性,该特性帮助你保证由服务管理的DNS记录能够保持更新。如果你使用动态DNS来在客户IP地址更改以后自动注册它们的主机名的话,scavenging是相当重要的,这种情况发生的与客户通过DHCP自动获取IP地址一样多。
随着时间的过去,一个区域内的客户主机记录可能会过时,scavenging删除这些记录。删除记录能够改进DNS服务器和区域传输性能,并且它还保证主机记录不是老的记录冲突。
你可以通过一个区域的属性来配置scavenging。打开DNS控制台,右键点击Zone然后选择Properties。在General选项卡,点击Aging 打开Zone Aging/Scavenging Properties对话框。使用下拉列表框设置Refresh Interval和Non-refresh Interval,选择Scavenge Stale Resource Records复选框,点击OK关闭这两个对话框。 你还可以通过编辑服务器的属性为区域整体配置scavenging,而非对单个区域进行配置。在DNS控制台,右键点击服务器,选择Set Aging/Scavenging For All Zones。弹出的对话框与配置单个区域的对话框一样。
委托一个策略群对象
用Ipconfig来观测和管理DNS解析缓存
处于2000 Professional平台上的DNS客户将主机名解析为IP地址,这和其他操作平台是一样的。DNS解析要求对Web浏览器的支持,以及对邮件服务和其他依赖于主机名而不是依赖于IP地址的应用程序的支持。
DNS解析储存了DNS查询结果,其中包括了肯定的查询,当然也包括了否定查询(解析失败的查询)。
每个DNS记录都有一个生存时间(TTL)值,这个值就决定了这个纪录什么时候刷新,进而被其他查询取代。在TTL到达之前,解析将返回缓存中的查询结果,而不会开始新的查询。
当你要解决连接与DNS的问题时,清空DNS缓存并强迫对一主机名进行一次新的解析是非常有必要的。你可以使用IPConfig这个控制台命令来观测缓存容量并清空缓存。
通过以下的命令就可以显示缓存的容量,并将结果传送给More指令,从而将结果一次性在一页中显示出来: ipconfig /displaydns more
使用一下这个命令来清空缓存:ipconfig /flushdns
委托一个策略群对象
随着网络的扩展,尤其是在需要跨越不同部门或区域进行政策群管理的话的时候你会发现对服务器以及网络的管理变得越来越困难。策略群控制对象(GPOs)的委托控制能对你的管理简单化有所帮助。委托的管理员能够根据需要对具有特殊的组织单位(Ous)或是域进行政策群管理。
委托GPO管理设置GPO访问控制表来控制用户的读/写访问,具体设置步骤如下:
1 打开活动目录用户和计算机控制台
2 在连接到GPO的OU出点击鼠标右键,进行域扩展,选择属性;
3 点击策略群标号,选择GPO,然后点击属性;
4 点击安全标号,添加被委托了GPO的组或用户,并都选择允许读和写操作;
5 点击确定键,关闭GPO属性栏,然后再按确定键关闭OU的属性栏;
iu缓存比au缓存好。
iu缓存更加安全,只能在服务器上访问。au缓存则更加容易被破解,在客户端设备上访问。iu缓存更加容易管理,只需要在服务器上进行管理,而au缓存则更加复杂,需要在客户端设备上进行管理。因此,iu缓存比au缓存好。
iu缓存是一种服务器端的缓存技术,它可以将数据存储在服务器上,以便在需要时可以快速访问。
问题一:系统缓存到底是什么意思 在电脑系统中,硬件运行速度的快慢基本由缓存决定,缓存的容量越大,相应的硬件运行速度也就越快。缓存的应用几乎遍及所有的硬件, 比如CPU、硬盘、刻录机等,甚至是软件也有缓存。什么是缓存简单来说缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时, 会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是 帮助硬件更快地运行
问题二:手机里的应用缓存和系统缓存是啥意思 可以清除吗 可以,都是看过的视频啊新闻啊留下的垃圾文件,
问题三:手机系统缓存和应用缓存有什么区别 您好,手机系统缓存指的是手机自带的系统软件占用的缓存;应用缓存指的是应用软件占用的缓存。
问题四:什么是缓存?什么是系统缓存? 缓存就是用来加速软件运行的存储。如由于硬盘速度比内存慢因此运算需要经常用到的东西放到内存中做缓存。数据库中的常用数据如代码表,可以先从数据库读出来,放到应用服务器端的缓存软件中作为缓存加快应用服务器读取速度。
缓存是一张非常常用的性能优化方法。常用缓存软件有ehcache,memcache,redis等
问题五:手机里的缓存可以全部清理吗?什么叫系统缓存 系统缓存是可以清理的,就像是打开网页,会提示加载,那就是缓存。
手机党,望采纳
问题六:这上面的“后台服务”和“系统缓存”分别是什么意思啊 系统缓存可以分为1级和2级缓存英文叫CACHE它的最主要的作用就是来调节低速CPU和高度内存之间的矛盾起平衡减少冲突可以增加使用寿命和加快电脑运行速度一般来说2级缓存越高越好
后台服务又叫做电脑后台运行后在电脑上显示不出来必须有热键才能显示出电脑分为前台和后台前台就是你可以看到的桌面了游戏了QQ了之类的东西而后台的东西你就看不见了只有你知道的命令才可以把它显示出来比方说你在玩些游戏但突然父母或者老板来了你就可以把它藏到后台运行但并不是关闭只是暂时看不到而且继抚运行实际上电脑的任务管理器上面显示的进程数一般为26左右其实在后台还有10几个任务在进行只是看不到而已
后台和缓存设置好了都可以增加电脑速度
问题七:硬盘的缓存是什么意思有什么用 什么是缓存盘: 在电脑系统中,硬件运行速度的快慢基本由缓存决定,缓存的容量越大,相应的硬件运行速度也就越快。缓存的应用几乎遍及所有的硬件,比如CPU、硬盘、刻录机等,甚至是软件也有缓存。什么是缓存?简单来说缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行,因此,我们要不惜使出一切手段来增加硬件的缓存,让机器“飞”起来,以下就介绍几种增加缓存的方法。 CPU的缓存 CPU的缓存分二级:L1(一级缓存)和L2(二级缓存),当处理器要读取数据时,首先要在L1缓存中查找,其次才是L2缓存,最后才是系统内存。如果有一天你发觉自己的电脑慢了很多,进入到Windows桌面也要几分钟,这时候就要检查一下CPU的一、二级缓存有没有打开。在BIOS设置中的Standard CMOS Setup(标准CMOS设定)有两项是用来打开或关闭缓存的:CPUInternal Cache设为Enable时开启CPU内部的一级缓冲区,若设置为Disabl则为关闭,这时系统性能将大大降低;ExternalCache选项是控制主板上二级缓冲区,如果主板上有二级缓存则应设成Enable。 硬盘的缓存 点击电脑桌面上的“开始”/“运行”,键入“Msconfig”启动“系统配置实用程序”,跟着选中“system.ini”标签下的“Vcache”项,就可以根据系统的实际情况来调节硬盘的缓存了。在该选项中一般会有三行内容:ChunkSize=1024、MaxFileCache=10240和MinFileCache=10240;其中第一行是缓冲区读写单元值,第二、三行是硬盘的最大和最小缓冲值,等号后的数值都是可以修改的,只要右键单击选中任一行就可以进行修改了。如果你的内存是128MB的话,上面这三行的取值就比较合理了,当然也可以自定。如果不知道该如何设置合适的缓冲值,请“Windows优化大师”帮忙吧,这个软件中有一个“磁盘缓存优化”项,用鼠标就可以方便地设置好缓存;又或者让“Windows优化大师”自动帮你进行优化设置。当硬盘的缓存值足够大时,硬盘就不用频繁地读写磁盘,一来可以延长硬盘的寿命,二来也可以提高数据的传输速度。 另外,将硬盘的“文件系统缓存”设置为“网络服务器”,可以加快系统对硬盘的访问速度,因为文件系统缓存里存放了硬盘最近被访问过的文件名和路径,缓存越大所能储存的内容也就越多。如果点击“控制面板”/“系统”/“性能”/“文件系统”/“硬盘”,将“此计算机的主要用途”由“台式机”改为“网络服务器”,可以将原来10K左右的缓存增加至近50K左右。 软驱和光驱的缓存 一般来说,软驱读写数据的速度都比较慢,这是因为盘片的转速不能太高,但是,我们可以提高软驱的读写缓存,让软驱一次读写更多的数据。方法是:在桌面上的“开始”/“运行”框中键入“Regedit”运行注册表编辑器,依次进入HKEY-LOCAL-MACHINE\System\CurrentControlSet\Services\Class\FDC\0000,新建一个为ForeFifo的“DWORD值”,将其值设为“0”,这样就对软驱进行了软提速。 很多人都知道右键单击桌面“我的电脑”图标,选“属性”/“性能”/“文件系统”/“CD-ROM”,将最佳的访问方式设为“四倍速或更高速”,将追加的高速缓存大小滑块拖到最大处,可以明显提高光驱的读盘速度。除了这种方式,我们还可以在注册>>
问题八:手机系统缓存删除的是什么 简单的说
比如:
手机里面的java小程序或者游戏什么的,你玩了后,没去关闭,然后就退出来了,那些小游戏实际还是占用内存的。
亲历缓存就清理这些你打开而没有正确关闭的程序。
问题九:CPU的缓存是什么意思啊 缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。
L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32―256KB。
L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在家庭用CPU容量最大的是512KB,而服务器和工作站上用CPU的L2高速缓存更高达256-1MB,有的高达2MB或者3MB。
L3 Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。 jz5u
其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。
但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。
通常来讲,只要你的服务器上的文件成功更新了的,那么就更新过了。
而你本机看到还是原来那样,最常见的是flash,却没有变化。
那么你就要用ie上的工具,然后选择internet选项,然后清除缓存和脱机文件。
再刷新你的页面,就正常了。
0条评论