HTTP.sys 不會快取內容的實例

本文介紹 HTTP.sys 驅動程式不會快取內容的實例。

原始產品版本: Internet Information Services 8.0
原始 KB 編號: 817445

HTTP.sys 不會快取的情況

回應 HTTP.sys 快取會在要求標頭中快取具有適當旗標的任何要求。 此快取會根據每個要求停用。 不過,如果下列一或多個條件成立, HTTP.sys 則不會快取要求回應:

  • 要求不是匿名要求。

  • 要求需要驗證。 (例如,要求包含 Authorization: header.)

  • 網站已設定為使用頁尾。

  • 動態壓縮已啟用,並用於回應。

    注意事項

    靜態壓縮可以與快取搭配 HTTP.sys 使用。

  • 靜態檔案是 UNC) 檔案 (通用命名約定, DoDirMonitoringForUnc 而且未啟用登錄機碼。

    注意事項

    您可以使用 DoDirMonitoringForUnc 登錄屬性 (DWORD 值) 將靜態檔案快取切換回變更通知快取。 這會設定如下: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Inetinfo\Parameters
    預設值為 0 或未啟用。 它可以設定為 1,以根據變更通知啟用靜態內容的快取。

  • 要求包含查詢字串。

  • 快取已停用。 (也就是說, MD_VR_NO_CACHE metabase 屬性等於 1.)

    注意事項

    如需 Metabase 屬性的 MD_VR_NO_CACHE 詳細資訊,請參閱產品檔。 若要檢視此檔,請 參閱 DisableStaticFileCache

  • 要求具有實體主體。

  • 已啟用 URL 的憑證對應。

  • 已啟用網站的自定義記錄。

  • 要求 HTTP 版本不是 1.1 或 1.0。

  • 要求包含 Translate: f 標頭。

  • Expect:沒有完全100 continue包含的標頭存在。

  • 要求包含 If-Range: 標頭或 Range: 標頭。

    注意事項

    HTTP.sys 只會處理整個回應。 HTTP.sys 不會嘗試傳送範圍回應。

  • 回應會跨越多個 SendResponseSendResponseEntityBody 呼叫。

    注意事項

    可快取的回應必須在單一向量 SendResponse 呼叫中關閉。

  • 回應大小總計大於每個回應的大小上限。 最大值由登錄機碼控制 UriMaxUriBytes ,預設值為 256 KB。

  • 響應標頭大小大於每個回應的最大標頭大小。 默認值為 1,024 個字節。

  • 快取已滿。 默認大小與計算機中的物理記憶體成正比。

  • 回應長度為零。

  • 已安裝未感知快取的因特網伺服器應用程式 (ISAPI) 篩選器。

    注意事項

    根據預設,ISAPI 篩選條件不會感知快取。 您必須設定篩選條件 FilterEnableCache 的 Metabase 屬性,使其能夠感知快取。 預設 IIS 安裝中的所有篩選都是快取感知。 這包括 FrontPage 和 ASP.NET。
    如需metabase屬性的FilterEnableCache詳細資訊,請檢視 Windows 10 部署的新功能。

  • 靜態檔案會存取為預設檔。 (例如,根目錄中 Default.htm ) 依名稱存取特定檔案 () http://contoso.com/default.htm/ 會導致 HTTP.sy快取檔案。 藉由要求根資料夾來存取網站 (http://contoso.com/) 會導致未快取的回應。

    注意事項

    如果無法存取預設檔案清單中所列的第一頁,IIS 會嘗試提供預設檔案清單中的第二頁。 在此情況下,不會從快取提供該靜態頁面。