다음을 통해 공유


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) 요청을 처리하는 커널 모드 드라이버입니다. 특정 요구 사항에 따라 여러 레지스트리 값을 구성할 수 있습니다. 레지스트리 키 섹션의 표에는 이러한 레지스트리 값에 대한 다음 정보가 포함되어 있습니다.

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

참고

기본 설정 이외의 설정을 사용하여 레지스트리 값을 만들고 구성할 때 발생할 수 있는 위험에 대한 자세한 내용은 경고 코드 섹션을 참조하세요.

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

레지스트리 키

중요

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

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

레지스트리 키 기본값 유효한 값 범위 레지스트리 키 함수 경고 코드
AllowRestrictedChars 0 부울 0이 아닌 경우 Http.sys U+0000 - U+001F 및 U+007F - U+009F 범위로 디코딩하는 요청 URL에서 16진수 이스케이프된 문자를 허용합니다. 0
EnableAggressiveMemoryUsage 0 0
1
페이지가 없는 풀 메모리를 미리 할당합니다. 기본적으로 HTTP 서비스는 20MB 미만의 비페이지 풀 메모리를 사용할 수 있는 경우 연결 수락을 중지합니다. 레지스트리에 이 값을 추가한 후 HTTP 서비스는 8MB 미만의 비페이지 풀 메모리를 사용할 수 있는 경우 연결 수락을 중지합니다. 이 레지스트리 값을 설정하면 Httperr.log 파일의Connections_refused 및 503 오류 수가 감소할 수 있습니다. 0
EnableNonUTF8 1 부울 0이면 Http.sys UTF-8로 인코딩된 URL만 허용합니다. 0이 아닌 경우 Http.sys 요청에 ANSI 또는 DBCS로 인코딩된 URL도 수락합니다. 0
FavorUTF8 1 부울 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 부울 0이 아닌 경우 Http.sys 요청 URL에서 % uNNNN 표기법을 수락합니다. 0
UrlSegmentMaxCount 255 0- 16,383개 세그먼트 최대 URL 경로 세그먼트 수입니다. 0이면 의 최대값으로 제한되는 개수입니다 ULONG. 1
UriEnableCache 1 부울 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(인터넷 서버 API) 애플리케이션 또는 CGI(Common Gateway Interface) 애플리케이션이 응답을 보낼 때 IIS(인터넷 정보 서비스)에서 성능이 저하될 수 있습니다. 이 문제가 발생하면 레지스트리에 MaxBufferedSendBytes DWORD 값을 추가할 수 있습니다.

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

레지스트리 키 기본값 유효한 값 범위 레지스트리 키 함수 경고 코드
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 서비스를 입력하고 다음 단계를 수행합니다.

  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 키를 누릅니다. 명령에서 servicename 은 다시 시작하려는 서비스의 이름입니다. 예를 들어 World Wide Web Publishing Service 서비스를 다시 시작하려면 를 입력 net start World Wide Web Publishing Service한 다음 Enter 키를 누릅니다.