Http.sys Windows 的登錄設定
本文說明 Http.sys Windows 的登錄設定。
原始產品版本: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 (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 回應標頭 Server 以取得其傳送給客戶端的回應時的行為。 默認值為 0 的值會使用應用程式提供給 http.sys 的標頭值,或將的 Microsoft-HTTPAPI/2.0 預設值附加至響應標頭。 值 1 將不會附加伺服器標頭,以取得以 400、503 結尾的 http.sys (回應所產生的回應,以及) 的其他狀態代碼。 值 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 管理員 Service 服務的 IIS 服務也會停止。 請注意當您停止 IIS 管理員 服務時停止的 IIS 服務。 您將在下一個步驟中重新啟動每個服務。
重新啟動步驟 4 中已停止的 IIS 服務。 若要這樣做,請在命令提示字元中輸入
net start servicename
,然後按 Enter。 在 命令中, servicename 是您想要重新啟動的服務名稱。 例如,若要重新啟動 World Wide Web Publishing Service 服務,請輸入net start World Wide Web Publishing Service
,然後按 Enter。