
指令不区分大小写,并且具有可选参数,可以用令牌或者带引号的字符串语法。多个指令以逗号分隔。
客户端可以在HTTP请求中使用的标准 Cache-Control 指令。
Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: only-if-cached
服务器可以在响应中使用的标准 Cache-Control 指令。
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: public
Cache-control: private
Cache-control: proxy-revalidate
Cache-Control: max-age=<seconds>
Cache-control: s-maxage=<seconds>
拓展缓存指令不是HTTP缓存标准的一部分,使用前请注意检查 兼容性 !
Cache-control: immutable
Cache-control: stale-while-revalidate=<seconds>
Cache-control: stale-if-error=<seconds>
public
表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存。
private
表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)。
no-cache
强制所有缓存了该响应的缓存用户,在使用已存储的缓存数据前,发送带验证器的请求到原始服务器
only-if-cached
表明如果缓存存在,只使用缓存,无论原始服务器数据是否有更新
max-age=<seconds>
设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒)。与Expires相反,时间是相对于请求的时间。
s-maxage=<seconds>
覆盖max-age 或者 Expires 头,但是仅适用于共享缓存(比如各个代理),并且私有缓存中它被忽略。
max-stale[=<seconds>]
表明客户端愿意接收一个已经过期的资源。 可选的设置一个时间(单位秒),表示响 应不能超过的过时时间。
min-fresh=<seconds>
表示客户端希望在指定的时间内获取最新的响应。
must-revalidate
缓存必须在使用之前验证旧资源的状态,并且不可使用过期资源。
proxy-revalidate
与must-revalidate作用相同,但它仅适用于共享缓存(例如代理),并被私有缓存忽略。
immutable
表示响应正文不会随时间而改变。资源(如果未过期)在服务器上不发生改变,因此客户端不应发送重新验证请求头(例如If-None-Match或If-Modified-Since)来检查更新,即使用户显式地刷新页面。在Firefox中,immutable只能被用在 https:// transactions.
发送如下指令可以关闭缓存。此外,可以参考Expires 和 Pragma 标题。
对于应用程序中不会改变的文件,你通常可以在发送响应头前添加积极缓存。这包括例如由应用程序提供的静态文件,例如图像,CSS文件和JavaScript文件。另请参阅Expires标题。
缓存主要两个策略 强制缓存 ,协商缓存
强制缓存就是设置本地资源html img js等等缓存多长时间 超过时间就去服务器端取。
协商缓存就是每次都询问服务器资源是否已经过期 没有过期就使用缓存 已经过期就从服务器上重新取。
缓存流程可以分三个阶段 本地缓存,协商缓存 ,缓存失败
现在的vue项目里都不是这样缓存的 我个人感觉这是在静态页面时的缓存办法
现在都是webpack打包时通过 hash chunkhash contenthash来决定缓存方式 主要就是在请求的文件名称后面加一个id 来判断文件是否已经更新。
你好,这样是不太可取的。IIS和网站代码都没有这个功能设置。内存是用来临时存放运行文件的,一但断电就没有了,不能用来存长固定的文件。。如果同时请求访问的人数过多,那么可能会响应不过来。。另外,个人觉得目前我们网站访问的瓶颈并不是硬盘速度,服务器硬盘读也是百M/s的,而网络一般是十M,最多也才百M吧。。如果判断出的确是硬盘速度瓶颈,那么就使用固态硬盘。。。个人建议启用IIS的Gzip压缩(百科:http://baike.baidu.com/view/966625.htm)是非常有效的。
当然了,如果你一定要将文件加载到内存里,可以试着用下面的方式,只是思路, 没有验证:
1、安装使用 内存虚拟硬盘(ramdisk) 相关软件,通过把内存虚拟成硬盘的技术增加一个高速的磁盘。
2、添加一个自动启动任务,就是在完成内存虚拟硬盘后,将网站源文件直接拷到那个虚拟盘分区里去。然后再启动IIS。 (这个步骤用一个批处理文件就可以)
理论上是可行的,我相信也一定可以成功,但至于效果,不太敢保证。
如果是静态文件,直接拷贝就可以,如果是动态的,在保存的,那么批处理文件就要进行修改了,不然断电后没有保存。。不过如果是动态网站,只需要把常用到的文件加载到内存是吧,那只在IIS上建立相应的虚拟目录到内存虚拟的硬盘上,那些有改动的文件,如xml文件和mdb数据库等,就直接保存到物理硬盘路径上,这样可以避免断电和内存出错导致的数据丢失
内存虚拟硬盘 百科:http://baike.baidu.com/view/1517248.htm
内存虚拟硬盘软件 vsuite ramdisk 百科:http://baike.baidu.com/view/5130752.htm
希望以上回复对你有帮助
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)