Http.sysのレジストリ設定Windows

この記事では、Http.sysのレジストリ設定についてWindows。

元の製品バージョン:  Windows 8, Windows Server 2012, 2008 R2, 2008
元の KB 番号:   820129

要約

サーバー 2008 Windows以降のバージョンでは、Http.sysはハイパーテキスト転送プロトコル (HTTP) 要求を処理するカーネル モード ドライバーです。 特定の要件に応じて、いくつかのレジストリ値を構成できます。 [レジストリ キー] セクション の表には 、これらのレジストリ値に関する次の情報が含まれます。

  • レジストリ キー名
  • 既定値
  • 有効な値の範囲
  • レジストリ キー関数
  • WARNING コード (該当する場合)

注意

既定の 設定以外の設定 を使用してレジストリ値を作成および構成する場合の潜在的なリスクについては、「警告コード」セクションを参照してください。

この記事は、高度なユーザーを対象とし、レジストリの知識と、レジストリが変更された場合に関連するリスクを前提とします。

レジストリ キー

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。

次のレジストリ キーの下に、次の DWORD レジストリ値を作成できます。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

レジストリ キー 既定値 有効な値の範囲 レジストリ キー関数 警告コード
AllowRestrictedChars 0 Boolean 0 以外の場合、Http.sys は U+0000 - U+001F および U+007F - U+009F 範囲にデコードする要求 URL で 16 進数エスケープ文字を受け入れる。 0
EnableAggressiveMemoryUsage 0 0
1
非ページ プール メモリを事前割り当てします。 既定では、20 MB 未満の非ページ プール メモリが使用可能な場合、HTTP サービスは接続の受け入れを停止します。 この値をレジストリに追加すると、8 MB 未満の非ページ プール メモリが使用可能な場合、HTTP サービスは接続の受け入れを停止します。 このレジストリ値を設定すると、Httperr.log ファイルConnections_refusedエラー数と 503 エラーが減る可能性があります。 0
EnableNonUTF8 1 Boolean ゼロの場合、Http.sysエンコードされた URL UTF-8のみ受け入れる必要があります。 0 以外の場合Http.sys要求で ANSI エンコードまたは DBCS エンコード URL も受け入れる必要があります。 0
FavorUTF8 1 Boolean 0 以外の場合Http.sys、URL を最初にデコードUTF-8します。変換が失敗し、 EnableNonUTF8 0 以外の場合、Http.sys ANSI または DBCS としてデコードを試みる必要があります。 ゼロ (および 0 EnableNonUTF8 以外) の場合、Http.sysは ANSI または DBCS としてデコードを試み、成功しない場合は、UTF-8変換をUTF-8します。 0
MaxBytesPerSend 65536 1-0xFFFFF (バイト) ユーザーが使用する TCP ウィンドウ のサイズをHttp.sys。 値が大きいほど、高帯域幅と高遅延のネットワーク環境でダウンロード速度が速くなる可能性があります。 0
MaxConnections MAX_ULONG 1024 (1k) - 2031616 (2 MB) 接続 ドライバーの計算 MaxConnections を上書きします。 これは主にメモリの関数です。 1
MaxEndpoints 0 0 - 1024 許可されている現在のエンドポイント オブジェクトの最大数。 既定値が 0 の場合は、使用可能なメモリから最大値が計算されます。 1
MaxFieldLength 16384 64 ~ 65534 (64k ~ 2) バイト 各ヘッダーの上限を設定します。 MaxRequestBytes を参照してください。 この制限は、URL の約 32k 文字に変換されます。 1
MaxRequestBytes 16384 256 - 16777216 (16 MB) バイト 要求行とヘッダーの合計サイズの上限を決定します。
既定の設定は 16 KB です。 この値が小さい場合 MaxFieldLength、値は MaxFieldLength 調整されます。
1
PercentUAllowed 1 Boolean 0 以外の場合Http.sys URL で % uNNNN 表記を受け入れる必要があります。 0
UrlSegmentMaxCount 255 0 ~ 16,383 セグメント URL パス セグメントの最大数。 0 の場合は、 の最大値で制限されるカウント ULONGです。 1
UriEnableCache 1 Boolean 0 以外の場合、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 のスラッシュの間の領域)。 0 の場合は、 の最大値で境界される長さです ULONG 1
DisableServerHeader 0 0 ~ 2 このキーは、クライアントhttp.sys応答に対して http 応答ヘッダー Server を追加する方法を制御します。 既定値である 0 の値は、アプリケーションが http.sys Microsoft-HTTPAPI/2.0 に提供するヘッダー値を使用するか、応答ヘッダーに既定値を追加します。 値 1 は、http.sys によって生成された応答 (400、503、および他の状態コードで終わる応答) のサーバー ヘッダーを追加しません。 値 2 を指定すると、http.sysにサーバー ヘッダーを追加できません。 応答にサーバー ヘッダーが存在する場合、サーバー ヘッダーは削除されません。存在しない場合は追加されません。 0

IIS でホストされているインターネット サーバー API (ISAPI) アプリケーションまたは Common Gateway Interface (CGI) アプリケーションが応答を送信すると、インターネット インフォメーション サービス (IIS) でパフォーマンスが低下する可能性があります。 この問題が発生した場合は、レジストリに MaxBufferedSendBytes DWORD 値を追加できます。

サーバー 2008 Windows以降のバージョンでは、次のレジストリ キーの下に次の DWORD 値を作成することもできます。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters

レジストリ キー 既定値 有効な値の範囲 レジストリ キー関数 警告コード
CertChainCacheOnlyUrlRetrieval 1 0
1
既定では、IIS がクライアント証明書を使用するように構成されている場合、チェーンの検証中に AIA ヒントはフォローされません。 この動作は、パフォーマンスとセキュリティ上の理由から行います。 たとえば、この動作は DoS 攻撃を防ぐのに役立ちます。 ただし、この動作により、AIA 取得が必要な場合に予期しない証明書の拒否が発生する可能性があります。 この動作を上書きするには、レジストリ キーの下で DWORD CertChainCacheOnlyUrlRetrieval パラメーターを 0 (ゼロ) に HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters 設定できます。 該当なし

警告コード

  • 0: リスクはありません。
  • 1: このレジストリ キーを変更すると、危険と見なされます。 このキーを使用するとHttp.sysメモリが増え、悪意のある攻撃に対する脆弱性が増加する可能性があります。
  • 2: 値が小さいと、キャッシュがフラッシュされる頻度が高い場合があります。 この動作が発生すると、パフォーマンスに影響を与える可能性があります。
  • 3: 値が小さいと、静的コンテンツのパフォーマンスに影響を与える可能性があります。

レジストリに加えた変更は、HTTP サービスを再起動するまで有効ではありません。 さらに、関連する IIS サービスを再起動する必要があります。

HTTP サービスを再起動するには、次の手順に従って、関連する IIS サービスを入力します。

  1. [ スタート] を選択 し、[ 実行] を 選択し、「Cmd」と 入力 し、[OK] を 選択します

  2. コマンド プロンプトに net stop http と入力し、Enter キーを押します。

  3. コマンド プロンプトに net start http と入力し、Enter キーを押します。

  4. コマンド プロンプトに net stop iisadmin /y と入力し、Enter キーを押します。

    注意

    IIS Admin Service サービスに依存する IIS サービスも停止されます。 IIS Admin Service サービスを停止するときに停止する IIS サービスに注意してください。 次の手順で各サービスを再起動します。

  5. 手順 4 で停止した IIS サービスを再起動します。 これを行うには、コマンド プロンプト net start servicename で入力し、Enter キーを押します。 コマンドでは、 servicename は再起動するサービスの名前です。 たとえば、World Wide Web Publishing Service サービスを再起動するには、「Enter net start World Wide Web Publishing Service」と入力し、Enter キーを押します。