在 Microsoft Windows Server 2003 中,Http.sys 是處理 HTTP 要求的核心模式驅動程式。您可以按照特殊需求設定數個登錄值。有關這些登錄值的詳細資訊,請參閱<其他相關資訊>一節表格中的下列資訊:
- 登錄機碼名稱
- 預設值
- 有效值範圍
- 登錄機碼功能
- 警告代碼 (如適用)
注意 請參閱<警告代碼>一節中,有關使用非預設設定建立並設定登錄值時,可能須冒風險的相關資訊。
這份文件是為進階使用者所設計,並假設使用者在變更登錄時,具備相同的登錄知識並且也瞭解其相關風險。
重要 這個章節、方法或工作包含修改登錄的步驟。然而,如果您不當修改登錄,可能會發生嚴重的問題。因此,請務必小心執行這些步驟。為加強保護,修改登錄之前請務必先備份。如果發生問題,您就可以還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
322756?
(http://support.microsoft.com/kb/322756/
)
如何在 Windows XP 和 Windows Server 2003 中備份、編輯及還原登錄
您可以在下列登錄機碼之下建立下列 DWORD 值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
摺疊此表格展開此表格
| 登錄機碼 | 預設值 | 有效值範圍 | 登錄機碼功能 | 警告代碼 |
|---|
| AllowRestrictedChars | 0 | 布林值 | 如果不是零,Http.sys 會接受要求 URL 中 (解碼為 U+0000 - U+001F 與 U+007F - U+009F 範圍) 的十六進位溢出字元。 | 0 |
| EnableAggressiveMemoryUsage | 0 | 0,1 | 預先配置未分頁集區記憶體。根據預設,如果可用的未分頁集區記憶體小於 20 MB,HTTP 服務便會停止接受連線。在將此值新增至登錄中後,如果可用的未分頁集區記憶體小於 8 MB,HTTP 服務便會停止接受連線。設定此登錄值可能會減少 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 就會試圖將 URL 解碼為 ANSI 或 DBCS。如果是零 (且 EnableNonUTF8 不是零),Http.sys 試圖將 URL 解碼為 ANSI 或 DBCS;如果失敗,就會嘗試轉換為 UTF-8。 | 0 |
| MaxBytesPerSend | 65536 | 1-0xFFFFF (位元組) | 覆寫 Http.sys 所使用的 TCP 視窗大小。較高的值可讓具有高頻寬和高延遲的網路環境中的下載速度較高。 | 0 |
| MaxConnections | MAX_ULONG | 1024(1k) – 2031616 (2MB) 連線 | 覆寫驅動程式中的 MaxConnections 計算。這大多是一項記憶體的功能。 | 1 |
| MaxEndpoints | 0 | 0 - 1024 | 允許的目前端點物件最大數。預設值零代表最大值是由可用記憶體計算而來 | 1 |
| MaxFieldLength | 16384 | 64 - 65534 (64k - 2) 位元組 | 設定每個標頭的上限。請參閱 MaxRequestBytes。如果是 URL,此限制轉譯成約 32k 字元。 | 1 |
| MaxRequestBytes | 16384 | 256 - 16777216 (16MB) 位元組 | 決定要求列和標頭的總大小上限。 預設設定為 16KB。
如果這個值小於 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 (bytes) | 4096(4k) – 16777216(16MB) 位元組
| 任何大於此值的回應不會快取到核心回應快取區中。 | 1 3 |
| UriScavengerPeriod | 120 (秒鐘) | 10 - 0xFFFFFFFF 秒鐘 | 決定快取區清除頻率。將清除任何尚未以秒鐘數等於 UriScavengerPeriod 存取的回應或分散。 | 1 2 |
| UrlSegmentMaxLength
| 260 | 0 - 32,766 字元
| URL 路徑區段 (URL 中,斜線間的區域) 中最大字元數。如果是零,它的長度受 ULONG 最大值限制。 | 1 |
當 Microsoft Internet Information Services (IIS) 6.0 上的 Internet Server API (ISAPI) 應用程式或 Common Gateway Interface (CGI) 應用程式傳送回應時,IIS 6.0 中的效能可能會變慢。如果遇到這個問題,可以將 MaxBufferedSendBytes DWORD 值新增至登錄中。
如需有關這個問題的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
906977?
(http://support.microsoft.com/kb/906977/
)
BUG:當 Internet Information Services 6.0 上的 ISAPI 應用程式和 CGI 應用程式傳送回應時,發生效能變慢的問題 (機器翻譯)
在 Microsoft Windows XP 和 Microsoft Windows Server 2003 中,您也可以在下列登錄機碼之下建立下列 DWORD 值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
摺疊此表格展開此表格
| 登錄機碼 | 預設值 | 有效值範圍 | 登錄機碼功能 | 警告代碼 |
|---|
| CertChainCacheOnlyUrlRetrieval | 1 | 0,1 | 根據預設,當 IIS 設定為使用用戶端憑證時,鏈結驗證期間不會遵循 AIA 提示。這個行為是為了效能和安全性之故。例如,這個行為可協助防止 DoS 攻擊。然而,這個行為也可能導致在需要 AIA 擷取時,發生非預期的憑證拒絕。
如果要覆寫這個行為,可以在 "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\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 Admin Service 服務的 IIS 服務也都會停止。當您停止 IIS Admin Service 服務時,請注意停止的 IIS 服務。您將會重新啟動下一個步驟中的各項服務。 - 重新啟動在步驟 4 中停止的 IIS 服務。如果要執行這項操作,請在命令提示字元中輸入 net start servicename,然後按下 ENTER。在命令中,servicename 是要重新啟動的服務的名稱。例如,如果要重新啟動 World Wide Web Publishing Service 服務,請輸入 net start "World Wide Web Publishing Service",然後按下 ENTER。