繁体   English   中英

缓存控制标头

[英]Cache-Control Headers

我正在用PHP为Cache-Control标头编写一个小型包装器。 在提交特定实现之前,我想直接获得一些细节。

我知道所有指令及其作用,但似乎其中一些可能会发生冲突。 我假设如果no-cache存在no-cache ,则不应存在其他任何Cache-Control指令(并且也不要设置Pragma: no-cache ,因为它实际上是请求标头)。

s-maxage的存在是否意味着public private指令应该删除public以及s-maxage 是否有以这种方式设置no-storeno-transformmust-revalidateproxy-revalidate警告? 是否还有其他相互冲突的指令?

并且no-cache和帮派会与任何非缓存控制指令(例如Expires等)发生冲突吗?

根据我的经验,即使您理论上正确地获得了所有缓存标头和指令,浏览器和代理是否按照其指示执行也是另一回事。 我认为测试没有办法(这很痛苦)。 特别是周围有许多平板电脑和移动设备。 http://www.procata.com/cachetest/可能会有所帮助。 我不知道可靠的缓存测试框架。

然后,HTTP 1.0和HTTP 1.1指令之间存在一定的混淆。 通常,存在向后兼容性(但也应进行测试)。 我会考虑完全忽略HTTP 1.0指令(即: Pragma:No-cacheExpires ),而将重点放在HTTP 1.1上。

缓存指令的层次结构在http://palisade.plynt.com/issues/2008Jul/cache-control-attributes/中进行了说明。 您的一些问题在那里得到回答。

我建议看

http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p6-cache-17.html

并且,如果不能解决问题,则将反馈发送到HTTPbis工作组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM