Http.sys Windows 的登錄設定
本文說明適用於 Windows 的Http.sys登錄設定。
原始產品版本: Windows 8、Windows Server 2012、2008 R2、2008
原始 KB 編號: 820129
摘要
在 Windows Server 2008 和更新版本中,Http.sys是處理超文本傳輸通訊協定 (HTTP) 要求的核心模式驅動程式。 您可以根據特定需求來設定數個登錄值。 [登錄機碼] 區段中的資料表包含下列有關這些登錄值的資訊:
- 登錄機碼名稱
- 預設值
- 有效值範圍
- 登錄機碼功能
- 警告碼 (適用時)
本文適用於進階使用者,並假設了解登錄,以及登錄變更時所涉及的風險。
登錄機碼
重要
這個章節、方法或工作包含修改登錄的步驟。 然而,不當修改登錄可能會發生嚴重的問題。 因此,請務必小心執行下列步驟。 為增加保護起見,請先備份登錄,再進行修改。 然後,如果發生問題,您就可以還原登錄。 如需備份和還原登錄的詳細資訊,請參閱如何在 Windows 中備份及還原登錄。
您可以在下列登入機碼下建立下列 DWORD 登入值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
登錄機碼 | 預設值 | 有效值範圍 | 登錄機碼函式 | WARNING 程式代碼 |
---|---|---|---|---|
AllowRestrictedChars | 0 | 布林值 | 如果非零,Http.sys在譯碼為 U+0000 - U+001F 和 U+007F - U+009F 範圍的要求 URL 中接受十六進位逸出字元。 | 0 |
EnableAggressiveMemoryUsage | 0 | 0 1 |
預先配置非分頁集區內存。 根據預設,當有小於 20 MB 的非分頁集區內存可用時,HTTP 服務會停止接受連線。 將此值新增至登錄之後,HTTP 服務會在可用的非分頁集區內存少於 8 MB 時停止接受連線。 設定此登錄值可能會減少Httperr.log檔案中的Connections_refused和 503 錯誤數目。 | 0 |
EnableNonUTF8 | 1 | 布林值 | 如果為零,Http.sys只接受UTF-8編碼的URL。 如果非零,Http.sys也會在要求中接受 ANSI 或 DBCS 編碼的 URL。 | 0 |
FavorUTF8 | 1 | 布林值 | 如果不是零,Http.sys一律會先嘗試將URL譯碼為UTF-8;如果轉換失敗且 EnableNonUTF8 非零,Http.sys會嘗試將它譯碼為 ANSI 或 DBCS。 如果零 (和 EnableNonUTF8 為非零),Http.sys會嘗試將它譯碼為 ANSI 或 DBCS;如果不是成功,則會嘗試 UTF-8 轉換。 |
0 |
MaxBytesPerSend | 65536 | 1-0xFFFFF (位元元組) | 覆寫Http.sys所使用的 TCP 視窗大小。 較高的值可能會在具有高頻寬和高延遲的網路環境中啟用較高的下載速度。 | 0 |
MaxConnections | MAX_ULONG | 1024 (1k) - 2031616 (2 MB) 連線 | 覆 MaxConnections 寫驅動程式中的計算。 這主要是記憶體的函式。 |
1 |
MaxEndpoints | 0 | 0 - 1024 | 允許的目前端點物件數目上限。 預設值為零表示最大值是從可用的記憶體計算而來。 | 1 |
MaxFieldLength | 16384 | 64 - 65534 (64k - 2) 位元組 | 設定每個標頭的上限。 請參閱 MaxRequestBytes 。 此限制會轉譯為 URL 的大約 32k 個字元。 |
1 |
MaxRequestBytes | 16384 | 256 - 16777216 (16 MB) 位元組 | 決定要求行和標頭大小總計的上限。 其預設設定為 16 KB。 如果此值低於 MaxFieldLength ,則會 MaxFieldLength 調整值。 |
1 |
PercentUAllowed | 1 | 布林值 | 如果不是零,Http.sys在要求URL中接受 % uNNNN 表示法。 | 0 |
UrlSegmentMaxCount | 255 | 0 - 16,383 個區段 | URL 路徑區段的數目上限。 如果為零,則為 以 最大值限定的 ULONG 計數。 |
1 |
UriEnableCache | 1 | 布林值 | 如果非零,則會啟用Http.sys回應和片段快取。 | 0 |
UriMaxUriBytes | 262144 (位元元組) | 4096 (4k) - 16777216 (16 MB) 位元組 | 任何大於此值的回應都不會在核心回應快取中快取。 | 1 3 |
UriScavengerPeriod | 120 (秒) | 10 - 0xFFFFFFFF 秒 | 決定快取清查程序的頻率。 在等於 UriScavengerPeriod 的秒數中未存取的任何回應或片段,會排清。 |
1 2 |
UrlSegmentMaxLength | 260 | 0 - 32,766 個字元 | URL 路徑區段中的最大字元數(URL 中斜線之間的區域)。 如果為零,則為由 最大值所系結的 ULONG 長度。 |
1 |
DisableServerHeader | 0 | 0 - 2 | 此金鑰會控制http.sys如何針對傳送至客戶端的回應附加 HTTP 回應標頭伺服器的行為。 值為 0,這是預設值,會使用應用程式提供給http.sys的標頭值,或將的預設值 Microsoft-HTTPAPI/2.0 附加至響應標頭。 值 1 不會針對http.sys所產生的回應附加伺服器標頭(回應結尾為 400、503 和其他狀態代碼)。 值為 2 會防止http.sys將伺服器標頭附加至回應。 如果回應上有伺服器標頭,則不會移除,如果沒有伺服器標頭,則不會新增。 |
0 |
當載入於 IIS 傳送回應的因特網伺服器 API (ISAPI) 應用程式或通用閘道介面 (CGI) 應用程式時,網際網路資訊服務 (IIS) 中的效能可能會變慢。 如果您遇到此問題,您可以將 DWORD 值新增 MaxBufferedSendBytes
至登錄。
在 Windows Server 2008 和更新版本中,您也可以在下列登錄機碼下建立下列 DWORD 值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters
登錄機碼 | 預設值 | 有效值範圍 | 登錄機碼函式 | WARNING 程式代碼 |
---|---|---|---|---|
CertChainCacheOnlyUrlRetrieval | 1 | 0 1 |
根據預設,當 IIS 設定為使用用戶端憑證時,鏈結驗證期間不會遵循 AIA 提示。 此行為基於效能和安全性考慮。 例如,此行為有助於防止 DoS 攻擊。 不過,此行為也會導致需要 AIA 擷取時發生非預期的憑證拒絕。 若要覆寫此行為,您可以將登錄機碼下的 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters DWORD 參數CertChainCacheOnlyUrlRetrieval 設定為 0 (零)。 |
不適用 |
警告碼
- 0:沒有風險。
- 1:變更此登錄機碼會被視為危險。 此密鑰會導致Http.sys使用更多記憶體,並可能會增加惡意攻擊的弱點。
- 2:低值可能會導致快取更頻繁地排清。 如果發生此行為,可能會影響效能。
- 3:低值可能會影響靜態內容的效能。
在您重新啟動 HTTP 服務之前,對登錄所做的變更將不會生效。 此外,您可能必須重新啟動任何相關的 IIS 服務。
若要重新啟動 HTTP 服務,請輸入和所有相關 IIS 服務,請遵循下列步驟:
選取 [開始],選取 [執行],輸入 Cmd,然後選取 [確定]。
在命令提示字元中輸入
net stop http
,然後按下 Enter。在命令提示字元中輸入
net start http
,然後按下 Enter。在命令提示字元中輸入
net stop iisadmin /y
,然後按下 Enter。注意
任何相依於 IIS 管理服務的 IIS 服務也會停止。 請注意當您停止 IIS 管理服務服務時停止的 IIS 服務。 在下一個步驟中,您將重新啟動每個服務。
重新啟動步驟 4 中已停止的 IIS 服務。 若要這樣做,請在命令提示字元輸入
net start servicename
,然後按 Enter。 在命令中, servicename 是您想要重新啟動的服務名稱。 例如,若要重新啟動 World Wide Web Publishing Service 服務,請輸入net start World Wide Web Publishing Service
,然後按 Enter。