2014-02-19 36 views
0

我向我的服务器上的PHP文件发出curl请求,它会返回以下响应。什么是HTTP响应中的Via以及如何删除它?

HTTP/1.1 200 OK 
Content-Length: 317 
Content-Type: application/json 
Server: Microsoft-IIS/7.5 
Last-Modified: Wed, 19 Feb 2014 11:30:16 GMT 
Via: 1.1 SC10100_83_75 
Connection: keep-alive 
Date: Wed, 19 Feb 2014 12:00:47 GMT 

问题是,这似乎是缓存我的请求,并没有返回最新值。我怀疑这是由于Via标题(读取它是关于代理)。这是什么,我该如何删除它?

+0

作为一个简单的谷歌搜索显示了'Via'头是代理的签名。这也解释了为什么可能会缓存:这是代理经常使用的。 – arkascha

+0

一个简单的事情(假设你没有控制基础设施)就是向你请求的URL添加一个“cachebuster”参数。例如。在URL的末尾添加'&cachebuster = <>',其中'<>'是基于当前时间的数字(例如php的'time()') –

+0

我实际上已经控制了基础设施,因为我运行的是Amazon EC2我有管理员权限。我不记得故意启用它,那么我怎样才能禁用代理呢? – chongzixin

回答

0

看起来像通过 - 表示您已通过代理路由 - 但是 - 这只是信息 - 您需要确保缓存标题设置正确,以便代理采取正确的操作。

当前,您的请求中没有设置缓存标头。

如果你不希望它被缓存做 - 然后设置下面的头:

Cache-Control: no-cache 

http://www.w3.org/Protocols/HTTP/Issues/cache-private.html

+0

似乎工作,一旦我手动设置标题。不过,我正在从Objective-C调用php文件。有没有办法将no-cache设置为Web服务器的默认值? – chongzixin

+0

取决于网络服务器 - 我不是IIS的专家 - 但是,如果您可以修改PHP脚本,您只需添加标头命令 - http://ie2.php.net/manual/en/function.header.php – BillyBigPotatoes

+0

看起来像你可以在IIS中设置默认标头http://technet.microsoft.com/en-us/library/cc753195(v=ws.10).aspx – BillyBigPotatoes

相关问题