我试图通过设置适当的caching标题来提高我所服务的某些网站的速度。
我已经阅读了一些教程,当在服务器上生成它们时,让资产的URI反映它们的新鲜感并不是一个坏主意。
例如,我可能将main.js
作为main.js
,其中<md5>
被main.js
文件的校验和replace。
我可以看到为什么这是有益的:当Cache-control
的max-age
参数被设置为将来的一个date时,这个资源在caching它的浏览器/代理的眼中总是保持“新鲜”。 每当需要一个新的资源时,它只是有另一个md5
总和,因此会出现一个新的资源。 这比使用ETag
更有效,因为不需要服务器检查资产是否已经改变,它的URI是显式的。
因为我试图自己设置一个代理caching内存的代理,但是我想知道:这个scheme是不是意味着浏览器/代理的沉重负担,因为它们会caching所有版本的资产(因为它们认为他们是不同的资产,因为他们有不同的URI)。
这是一个负责任的事情吗? 或者我会溢出代理/浏览器。 在处理具有大量可caching资源的服务时(如分配指定数量的空间并丢弃每个主机的LRU / LFUcaching条目),有没有某种定义的行为代理?