有没有办法告诉curl命令不要使用服务器端缓存? 例如;我有这个curl命令:
curl -v www.example.com
如何让curl发送一个不使用缓存的新请求?
注意:我在终端中寻找可执行命令。
答案 0 :(得分:107)
我知道这是一个较旧的问题,但我想为具有相同问题的用户发布答案:
curl -H 'Cache-Control: no-cache' http://www.example.com
此curl命令服务器在其标头请求中返回来自Web服务器的非缓存数据。
答案 1 :(得分:38)
-H 'Cache-Control: no-cache'
参数不能保证有效,因为远程服务器或其间的任何代理层都可以忽略它。如果它不起作用,你可以通过添加一个独特的查询字符串参数以老式的方式来做。通常,服务器/代理会认为它是唯一的URL,而不是使用缓存。
curl "http://www.example.com?foo123"
但每次都必须使用不同的查询字符串值。否则,服务器/代理将再次匹配缓存。要每次自动生成不同的查询字符串参数,您可以使用date +%s
,这将返回自纪元以来的秒数。
curl "http://www.example.com?$(date +%s)"
答案 2 :(得分:2)
-H 'Pragma: no-cache'
和 -H 'Cache-Control: no-cache'
都没有帮助我。在带有“cmd+shift+r”(完全重新加载)的浏览器中,我看到的是一个新版本,而不是终端中 curl
的输出。
为了获得完全相同的结果,我转到浏览器> F12(开发工具)> 网络/请求> 右键单击请求>“复制为 cURL”并获得 等效的 cURL 命令到浏览器的调用。
然后,我将其粘贴到终端中并开始一个一个地删除参数,直到我意外地发现 --compressed
对我的情况产生了影响。 (调用 CloudFront AWS)