Http.sys ustawienia rejestru dla systemu Windows
W tym artykule opisano Http.sys ustawienia rejestru dla systemu Windows.
Oryginalna wersja produktu: Windows 8, Windows Server 2012, 2008 R2, 2008
Oryginalny numer KB: 820129
Podsumowanie
W systemie Windows Server 2008 i nowszych wersjach Http.sys jest sterownikiem trybu jądra obsługującym żądania protokołu HTTP (Hypertext Transfer Protocol). Kilka wartości rejestru można skonfigurować zgodnie z określonymi wymaganiami. Tabela w sekcji Klucze rejestru zawiera następujące informacje o tych wartościach rejestru:
- Nazwy kluczy rejestru
- Wartości domyślne
- Prawidłowe zakresy wartości
- Funkcje klucza rejestru
- Kody OSTRZEGAWCZE (jeśli ma zastosowanie)
Uwaga 16.
Zobacz sekcję Kody ostrzeżeń , aby uzyskać informacje o potencjalnych zagrożeniach podczas tworzenia i konfigurowania wartości rejestru przy użyciu ustawień innych niż ustawienia domyślne.
Ten artykuł jest przeznaczony dla zaawansowanych użytkowników i zakłada, że znajomość rejestru i ryzyka, które są związane z zmianą rejestru.
Klucze rejestru
Ważne
W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonać poniższe kroki. Aby zapewnić dodatkową ochronę, utwórz kopię zapasową rejestru przed przystąpieniem do jego modyfikacji. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu. Aby uzyskać więcej informacji na temat sposobu tworzenia kopii zapasowych, przywracania i modyfikowania rejestru, zobacz artykuł Tworzenie kopii zapasowych i przywracanie rejestru systemu Microsoft Windows.
Następujące wartości rejestru DWORD można utworzyć w następującym kluczu rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Klucz rejestru | Domyślna wartość | Prawidłowy zakres wartości | Funkcja klucza rejestru | KOD OSTRZEGAWCZY |
---|---|---|---|---|
AllowRestrictedChars | 0 | Wartość logiczna | Jeśli niezerowa, Http.sys akceptuje znaki szesnastkowy w adresach URL żądań, które dekodować do U+0000 - U+001F i U+007F - U+009F zakresy. | 0 |
EnableAggressiveMemoryUsage | 0 | 0 1 |
Wstępnie przydziel pamięć niestronicowanej puli. Domyślnie usługa HTTP zatrzymuje akceptowanie połączeń, gdy jest dostępnych mniej niż 20 megabajtów (MB) pamięci niestronicowanej puli. Po dodaniu tej wartości do rejestru usługa HTTP przestaje akceptować połączenia, gdy jest dostępna mniej niż 8 MB pamięci puli niestronicowanej. Ustawienie tej wartości rejestru może zmniejszyć liczbę błędów Connections_refused i 503 w pliku Httperr.log . | 0 |
EnableNonUTF8 | 1 | Wartość logiczna | Jeśli wartość zero, Http.sys akceptuje tylko adresy URL zakodowane w formacie UTF-8. Jeśli niezerowy, Http.sys również akceptuje adresy URL zakodowane w standardzie ANSI lub DBCS w żądaniach. | 0 |
FavorUTF8 | 1 | Wartość logiczna | Jeśli niezerowa, Http.sys zawsze próbuje zdekodować adres URL jako utF-8 jako pierwszy; Jeśli ta konwersja nie powiedzie się i EnableNonUTF8 nie jestzerowa, Http.sys następnie próbuje zdekodować ją jako ANSI lub DBCS. Jeśli zero (i EnableNonUTF8 jest niezerowe), Http.sys próbuje zdekodować go jako ANSI lub DBCS; jeśli to nie powiedzie się, spróbuje konwersji UTF-8. |
0 |
MaxBytesPerSend | 65536 | 1-0xFFFFF (bajty) | Zastępuje rozmiar okna TCP używany przez Http.sys. Wyższa wartość może zapewnić większą szybkość pobierania w środowiskach sieciowych, które mają wysoką przepustowość i duże opóźnienia. | 0 |
Maksymalna liczba połączeń | MAX_ULONG | 1024 (1k) — połączenia 2031616 (2 MB) | MaxConnections Zastępuje obliczenia w sterowniku. Jest to przede wszystkim funkcja pamięci. |
1 |
Maksymalna liczba punktów końcowych | 0 | 0 - 1024 | Maksymalna liczba dozwolonych obiektów bieżącego punktu końcowego. Wartość domyślna zero oznacza, że wartość maksymalna jest obliczana z dostępnej pamięci. | 1 |
MaxFieldLength | 16384 | 64 – 65534 (64k – 2) bajtów | Ustawia górny limit dla każdego nagłówka. Zobacz: MaxRequestBytes . Ten limit przekłada się na około 32 tys. znaków dla adresu URL. |
1 |
MaxRequestBytes | 16384 | 256 — 16777216 (16 MB) bajtów | Określa górny limit całkowitego rozmiaru wiersza żądania i nagłówków. Jego ustawieniem domyślnym jest 16 KB. Jeśli ta wartość jest niższa MaxFieldLength niż MaxFieldLength , wartość zostanie skorygowana. |
1 |
PercentUAllowed | 1 | Wartość logiczna | Jeśli niezerowa, Http.sys akceptuje notację % uNNNN w adresach URL żądań. | 0 |
UrlSegmentMaxCount | 255 | 0 – 16 383 segmenty | Maksymalna liczba segmentów ścieżki adresu URL. Jeśli zero, liczba ograniczona przez maksymalną wartość .ULONG |
1 |
UriEnableCache | 1 | Wartość logiczna | Jeśli niezerowa, Http.sys odpowiedzi i pamięci podręcznej fragmentów są włączone. | 0 |
UriMaxUriBytes | 262144 (bajty) | 4096 (4k) — 16777216 (16 MB) bajtów | Każda odpowiedź większa niż ta wartość nie jest buforowana w pamięci podręcznej odpowiedzi jądra. | 1 3 |
UriScavengerPeriod | 120 (sekundy) | 10 — 0xFFFFFFFF sekund | Określa częstotliwość tkania pamięci podręcznej. Każda odpowiedź lub fragment, do którego nie uzyskiwano dostępu w liczbie sekund równej UriScavengerPeriod , jest opróżniona. |
1 2 |
UrlSegmentMaxLength | 260 | 0 – 32 766 znaków | Maksymalna liczba znaków w segmencie ścieżki adresu URL (obszar między ukośnikami w adresie URL). Jeśli wartość zero, jest to długość, która jest ograniczona przez maksymalną wartość .ULONG |
1 |
DisableServerHeader | 0 | 0 - 2 | Ten klucz steruje zachowaniem http.sys w odniesieniu do dołączania nagłówka odpowiedzi HTTP Serwera odpowiedzi na potrzeby odpowiedzi wysyłanych do klientów. Wartość 0, która jest wartością domyślną, będzie używać wartości nagłówka, którą aplikacja udostępnia do http.sys, lub dołączy domyślną wartość Microsoft-HTTPAPI/2.0 do nagłówka odpowiedzi. Wartość 1 nie spowoduje dołączenia nagłówka Serwera dla odpowiedzi wygenerowanych przez http.sys (odpowiedzi kończące się na 400, 503 i innych kodach stanu). Wartość 2 uniemożliwi http.sys dołączanie nagłówka Serwera do odpowiedzi. Jeśli nagłówek serwera jest obecny w odpowiedzi, nie zostanie usunięty, jeśli nie jest obecny, nie zostanie dodany. |
0 |
Może wystąpić niska wydajność w usługach Internet Information Services (IIS), gdy aplikacje internetowego interfejsu API (ISAPI) lub aplikacje common gateway interface (CGI) hostowane w usługach IIS wysyłają odpowiedzi. Jeśli wystąpi ten problem, możesz dodać MaxBufferedSendBytes
wartość DWORD do rejestru.
W systemie Windows Server 2008 i nowszych wersjach można również utworzyć następującą wartość DWORD pod następującym kluczem rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters
Klucz rejestru | Domyślna wartość | Prawidłowy zakres wartości | Funkcja klucza rejestru | KOD OSTRZEGAWCZY |
---|---|---|---|---|
CertChainCacheOnlyUrlRetrieval | 1 | 0 1 |
Domyślnie wskazówki dotyczące AIA nie są przestrzegane podczas walidacji łańcucha, gdy usługi IIS są skonfigurowane do używania certyfikatów klienta. To zachowanie jest ze względów wydajności i zabezpieczeń. Na przykład to zachowanie może pomóc w zapobieganiu atakom typu DoS. Jednak to zachowanie może również prowadzić do nieoczekiwanych odrzucenia certyfikatu, gdy konieczne jest pobranie AIA. Aby zastąpić to zachowanie, można ustawić parametr CertChainCacheOnlyUrlRetrieval DWORD na wartość 0 (zero) w kluczu HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters rejestru. |
Nie dotyczy |
Kody ostrzegawcze
- 0: Brak ryzyka.
- 1: Zmiana tego klucza rejestru jest uważana za niebezpieczną. Ten klucz powoduje, że Http.sys używać większej ilości pamięci i może zwiększyć lukę w zabezpieczeniach przed złośliwymi atakami.
- 2: Niska wartość może spowodować częstsze opróżnianie pamięci podręcznej. W przypadku wystąpienia tego zachowania może to mieć wpływ na wydajność.
- 3: Niska wartość może mieć wpływ na wydajność zawartości statycznej.
Zmiany wprowadzone w rejestrze nie zostaną zastosowane do momentu ponownego uruchomienia usługi HTTP. Ponadto może być konieczne ponowne uruchomienie wszystkich powiązanych usług IIS.
Aby ponownie uruchomić usługę HTTP, wpisz i wszystkie powiązane usługi IIS, wykonaj następujące kroki:
Wybierz pozycję Start, wybierz pozycję Uruchom, wpisz Cmd, a następnie wybierz przycisk OK.
W wierszu polecenia wpisz
net stop http
, a następnie naciśnij klawisz Enter.W wierszu polecenia wpisz
net start http
, a następnie naciśnij klawisz Enter.W wierszu polecenia wpisz
net stop iisadmin /y
, a następnie naciśnij klawisz Enter.Uwaga 16.
Wszystkie usługi IIS, które zależą od usługi administracyjnej usług IIS, również zostaną zatrzymane. Zwróć uwagę na usługi IIS, które są zatrzymywane po zatrzymaniu usługi administracyjnej usług IIS. W następnym kroku uruchomisz ponownie każdą usługę.
Uruchom ponownie usługi IIS, które zostały zatrzymane w kroku 4. Aby to zrobić, wpisz
net start servicename
w wierszu polecenia, a następnie naciśnij Enter. W poleceniu nazwa usługi to nazwa usługi, którą chcesz ponownie uruchomić. Aby na przykład ponownie uruchomić usługę publikowania w sieci Web, wpisznet start World Wide Web Publishing Service
, a następnie naciśnij Enter.