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 서비스를 입력하고 다음 단계를 수행합니다.
시작을 선택하고 실행을 선택하고 Cmd를 입력한 다음 확인을 선택합니다.
명령 프롬프트에서
net stop http
입력 후 Enter 키를 누릅니다.명령 프롬프트에서
net start http
입력 후 Enter 키를 누릅니다.명령 프롬프트에서
net stop iisadmin /y
입력 후 Enter 키를 누릅니다.참고
IIS 관리 서비스 서비스에 의존하는 모든 IIS 서비스도 중지됩니다. IIS 관리 서비스 서비스를 중지할 때 중지되는 IIS 서비스를 확인합니다. 다음 단계에서 각 서비스를 다시 시작합니다.
4단계에서 중지된 IIS 서비스를 다시 시작합니다. 이렇게 하려면 명령 프롬프트에 를 입력
net start servicename
한 다음 Enter 키를 누릅니다. 명령에서 servicename 은 다시 시작하려는 서비스의 이름입니다. 예를 들어 World Wide Web Publishing Service 서비스를 다시 시작하려면 를 입력net start World Wide Web Publishing Service
한 다음 Enter 키를 누릅니다.