我在网上看到了一些相互矛盾的答案,我试图从根本上理解这一点。假设我的网站上有一个图片热链接(是的,经过许可):
p = subprocess.Popen(args=[sys.executable, '-m', 'pdb', 'mide.py'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
p.communicate('s')
p.communicate('s')# I know why this line doesn't work, it's just a example how i wanted to do it.
<img src="externalserver.com/catpic.png">
,缓存会被破坏吗?谢谢!祝你们节日快乐。
答案 0 :(得分:1)
一切都取决于。
Cache-Control
或Expires
标头的方式。有关更多信息,请查看MDN的Cache-Control header page。Cache-Control
标头,Expires
标头,资源是否陈旧,服务器是否使用验证器以及它是执行弱验证还是强验证。有关更多信息,请查看MDN的HTTP conditional requests page。?randomquerystring
提供资源。相反,客户端可以使用?randomquerystring
请求资源。 ?randomquerystring
被称为缓存破坏者。用户代理将执行新请求,但我听说有些代理可能会忽略该类型的缓存,并仍然返回缓存响应。Cache-Control
和Expires
标头。 RFC 2616的相关摘录:
与任何其他状态代码(例如状态代码)一起收到的回复 302和307)不得在对后续的回复中返回 请求,除非有缓存控制指令或其他 明确允许它的标头。例如,这些包括 以下:一个Expires标题(第14.21节); a&#34; max-age&#34;, &#34; s-maxage&#34;,&#34;必须重新验证&#34;,&#34;代理重新验证&#34;,&#34;公共&#34;要么 &#34;私人&#34; cache-control指令(第14.9节)。
有关HTTP缓存的更多信息,请查看Ilya Grigorik撰写的HTTP Caching文章。