簡體   English   中英

html cache-control=no-cache 更改為 cache-control=max-age=0

[英]html cache-control=no-cache changes to cache-control=max-age=0

我已經構建了一個簡單的頁面來測試緩存控制,但我對結果感到困惑。 頁面只是

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Website teste</title>
    <meta http-equiv="cache-control" content="no-cache">
</head>
<body>
    <div>Hello World</div>

    <script>
        setTimeout(function () {
            window.location.reload()
        }, 10000)
    </script>
</body>
</html>

如果我進行硬刷新,緩存控制就是預期的在此處輸入圖片說明

但下次刷新緩存控制更改為 max-age=0

在此處輸入圖片說明

結果不應該是 304(未修改)而不是 200(OK)

此示例站點在 VisualStudio (IIS) 上運行

meta元素的http-equiv屬性在HTML 標准中定義。 注意:

http-equiv屬性是一個枚舉屬性。 下表列出了為此屬性定義的關鍵字...

cache-control不是列出的值之一,因此該指令無效。

不過,您的假設並非不合理。 在該標准的早期版本中,建議服務器可以基於此元素創建標頭:

HTTP 服務器可以讀取文檔<HEAD>的內容以生成對應於為屬性HTTP-EQUIV定義值的任何元素的頭字段。 注意 - 服務器提取文檔元信息的方法是未指定的,也不是強制性的。

不過,我不知道是否有任何服務器確實這樣做了。

最后,請注意,您在開發人員工具中看到的Cache-Control標頭是請求標頭,而不是響應標頭,因此與這些無關。 瀏覽器通常會在刷新時添加到請求中,以確保它們不會獲得緩存內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM