다음을 통해 공유


Windows용 Http.sys 레지스트리 설정

이 문서에서는 Windows용 Http.sys 레지스트리 설정에 대해 설명합니다.

원래 제품 버전: Windows 8, Windows Server 2012, 2008 R2, 2008
원래 KB 번호: 820129

요약

Windows Server 2008 이상 버전에서 Http.sys HTTP(Hypertext Transfer Protocol) 요청을 처리하는 커널 모드 드라이버입니다. 특정 요구 사항에 따라 여러 레지스트리 값을 구성할 수 있습니다. 레지스트리 키 섹션의 표에는 이러한 레지스트리 값에 대한 다음 정보가 포함되어 있습니다.

  • 레지스트리 키 이름
  • 기본값
  • 유효한 값 범위
  • 레지스트리 키 함수
  • 경고 코드(해당하는 경우)

이 문서는 고급 사용자를 위한 것이며 레지스트리 및 레지스트리가 변경될 때 발생하는 위험에 대한 지식을 가정합니다.

레지스트리 키

Important

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 신중하게 수행해야 합니다. 추가 보호를 위해 레지스트리를 수정하기 전에 백업합니다. 그러면 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 레지스트리를 백업하고 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하십시오.

다음 레지스트리 키 아래에 다음 DWORD 레지스트리 값을 만들 수 있습니다.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

레지스트리 키 Default value 유효한 값 범위 레지스트리 키 함수 경고 코드
AllowRestrictedChars 0 부울 0이 아닌 경우 Http.sys U+0000 - U+001F 및 U+007F - U+009F 범위로 디코딩하는 요청 URL에서 16진수 이스케이프된 문자를 수락합니다. 0
EnableAggressiveMemoryUsage 0 0
1
페이지가 없는 풀 메모리를 미리 할당합니다. 기본적으로 HTTP 서비스는 20MB(메가바이트) 미만의 비페이지 풀 메모리를 사용할 수 있는 경우 연결 허용을 중지합니다. 레지스트리에 이 값을 추가하면 8MB 미만의 비페이징 풀 메모리를 사용할 수 있는 경우 HTTP 서비스가 연결 수락을 중지합니다. 이 레지스트리 값을 설정하면 Httperr.log 파일의 Connections_refused 및 503 오류 수가 줄어들 수 있습니다. 0
EnableNonUTF8 1 Boolean 0이면 Http.sys UTF-8로 인코딩된 URL만 허용합니다. 0이 아닌 경우 Http.sys 요청에서 ANSI 또는 DBCS로 인코딩된 URL도 수락합니다. 0
FavorUTF8 1 Boolean 0이 아닌 경우 Http.sys 항상 URL을 UTF-8로 디코딩하려고 합니다. 해당 변환이 실패하고 EnableNonUTF8 0이 아닌 경우 Http.sys ANSI 또는 DBCS로 디코딩하려고 시도합니다. 0이고 EnableNonUTF8 0이 아닌 경우 Http.sys 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 허용되는 현재 엔드포인트 개체의 최대 수입니다. 기본값 0은 최대값이 사용 가능한 메모리에서 계산됨을 의미합니다. 1
MaxFieldLength 16384 64 - 65534(64k - 2) 바이트 각 헤더에 대한 상한을 설정합니다. MaxRequestBytes을 참조하세요. 이 제한은 URL에 대해 약 32k 문자로 변환됩니다. 1
MaxRequestBytes 16384 256 - 16777216(16MB) 바이트 요청 줄 및 헤더의 총 크기에 대한 상한을 결정합니다.
기본 설정은 16KB입니다. 이 값이 보다 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(16MB) 바이트 이 값보다 큰 응답은 커널 응답 캐시에 캐시되지 않습니다. 1
3
UriScavengerPeriod 120(초) 10- 0xFFFFFFFF 초 캐시 청소기의 빈도를 결정합니다. 동일한 UriScavengerPeriod 시간(초)에 액세스하지 않은 모든 응답 또는 조각이 플러시됩니다. 1
2
UrlSegmentMaxLength 260 0 - 32,766자 URL 경로 세그먼트의 최대 문자 수(URL의 슬래시 사이의 영역)입니다. 0이면 최대값으로 제한된 길이입니다 ULONG. 1
DisableServerHeader 0 0 - 2 이 키는 클라이언트에 보내는 응답에 대한 http 응답 헤더 서버를 추가하는 것과 관련하여 http.sys 동작하는 방법을 제어합니다. 기본값인 0 값은 애플리케이션이 http.sys 위해 제공하는 헤더 값을 사용하거나 응답 헤더의 Microsoft-HTTPAPI/2.0 기본값을 추가합니다. 값이 1이면 http.sys 생성된 응답에 서버 헤더가 추가되지 않습니다(응답은 400, 503 및 기타 상태 코드로 종료됨). 값이 2이면 http.sys 응답에 서버 헤더를 추가하지 못하게 됩니다. 응답에 서버 헤더가 있으면 서버 헤더가 제거되지 않고, 서버 헤더가 없는 경우 추가되지 않습니다. 0

IIS에서 호스트되는 ISAPI(Internet Server API) 애플리케이션 또는 CGI(Common Gateway Interface) 애플리케이션이 응답을 보낼 때 IIS(인터넷 정보 서비스) 성능이 저하될 수 있습니다. 이 문제가 발생하는 경우 레지스트리에 MaxBufferedSendBytes DWORD 값을 추가할 수 있습니다.

Windows Server 2008 이상 버전에서는 다음 레지스트리 키 아래에 다음 DWORD 값을 만들 수도 있습니다.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters

레지스트리 키 Default value 유효한 값 범위 레지스트리 키 함수 경고 코드
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 서비스를 다시 시작하려면 다음 단계를 수행합니다.

  1. 시작을 선택하고 실행을 선택하고 Cmd를 입력한 다음 확인을 선택합니다.

  2. 명령 프롬프트에서 net stop http 입력 후 Enter 키를 누릅니다.

  3. 명령 프롬프트에서 net start http 입력 후 Enter 키를 누릅니다.

  4. 명령 프롬프트에서 net stop iisadmin /y 입력 후 Enter 키를 누릅니다.

    참고 항목

    IIS 관리 서비스 서비스에 의존하는 모든 IIS 서비스도 중지됩니다. IIS 관리 서비스 서비스를 중지하면 중지되는 IIS 서비스를 확인합니다. 다음 단계에서 각 서비스를 다시 시작합니다.

  5. 4단계에서 중지된 IIS 서비스를 다시 시작합니다. 이렇게 하려면 명령 프롬프트에 입력 net start servicename 한 다음 Enter 키를 누릅니다. 명령 에서 서비스 이름은 다시 시작하려는 서비스의 이름입니다. 예를 들어 World Wide Web Publishing Service 서비스를 다시 시작하려면 Enter net start World Wide Web Publishing Service키를 입력하고 누릅니다.