2012-03-02 275 views
0

我有一個HTML頁面,並添加一些meta標籤是這樣的:如何避免在chrome中返回304狀態碼的請求?

<meta http-equiv="Cache-Control" Content="public" /> 
<meta http-equiv="Expires" Content="Mon, 08 Jun 2013 03:37:26 GMT" /> 

我的服務器是tomcat的,這個HTML頁面被客戶端瀏覽器緩存後,我關閉了我的tomcat。

然後我試着在不同的瀏覽器中訪問這個HTML頁面。

IE可以成功訪問此頁面,但Chrome失敗。

然後我重新啓動了我的tomcat,並在Chrome和IE中進行了測試。

我發現chrome仍然發送了一個帶有304代碼的請求,但是IE沒有發送這個請求。

那麼如何在Chrome中避免此請求?

回答

0

其實我不認爲這是一個錯誤。 3xx表示重定向。真正的錯誤是4xx(客戶端錯誤)和5xx(服務器錯誤)。

如果客戶端獲得304 Not Modified,則客戶端有責任從其自己的緩存中顯示相關資源。一般來說,代理人不應該擔心這一點。它只是使者。

catch (WebException ex) 
{ 


    if (ex.Status == WebExceptionStatus.ProtocolError) 
    { 
     int statusCode = (int) ((HttpWebResponse) ex.Response).StatusCode; 
     listenerContext.Response.StatusCode = statusCode; 
     listenerContext.Response.StatusDescription = ex.Message; 
     log("WARNING", uri, "WebException/ProtocolError: " + ex.GetType() + " - " + ex.Message); 
    } 
    else 
    { 
     log("ERROR", uri, "WebException - " + ex.GetType() + " - " + ex.Message); 

    } 

    listenerContext.Response.Close(); 
} 
+0

我正在尋找client.i中的解決方案,只是希望瀏覽器永久性地緩存純html頁面,並且從不向服務器請求它,而不管服務器正在運行或關閉。 – 2012-03-02 08:19:15

+0

在這種情況下,您可能想要查看諸如http://www.w3.org/TR/offline-webapps/的內容嗎? – Dre 2012-06-16 23:18:14