不使用缓存的卷曲命令

时间:2015-07-27 12:35:44

标签: linux bash caching curl memcached

有没有办法告诉curl命令不要使用服务器端缓存? 例如;我有这个curl命令:

curl -v www.example.com

如何让curl发送一个不使用缓存的新请求?

注意:我在终端中寻找可执行命令。

3 个答案:

答案 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)