2014-02-19 32 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

相關問題