Udostępnij za pośrednictwem


Http.sys ustawień rejestru dla systemu Windows

W tym artykule opisano ustawienia rejestru Http.sys 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, który obsługuje żą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 (w stosownych przypadkach)

Uwaga

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 znajomość rejestru oraz ryzyka związanego z zmianą rejestru.

Klucze rejestru

Ważna

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 wykonywać podane czynności. Dla większego bezpieczeństwa przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. 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 ramach następującego klucza rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

Klucz rejestru Wartość domyślna Prawidłowy zakres wartości Funkcja klucza rejestru KOD OSTRZEGAWCZY
AllowRestrictedChars 0 Wartość logiczna Jeśli niezerowe, Http.sys akceptuje znaki ucieczki szesnastkowej w adresach URL żądań, które dekodują zakresy U+0000 — U+001F i U+007F — U+009F. 0
EnableAggressiveMemoryUsage 0 0
1
Wstępnie przydzielij niestronicowaną pamięć puli. Domyślnie usługa HTTP przestaje akceptować połączenia, gdy jest dostępna mniej niż 20 megabajtów (MB) niestronicowanej pamięci puli. Po dodaniu tej wartości do rejestru usługa HTTP przestaje akceptować połączenia, gdy jest dostępna mniej niż 8 MB niestronicowanej pamięci puli. 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 jest zero, Http.sys akceptuje tylko adresy URL zakodowane w formacie UTF-8. Jeśli niezerowe, Http.sys akceptuje również adresy URL zakodowane w usłudze ANSI lub DBCS w żądaniach. 0
FavorUTF8 1 Wartość logiczna Jeśli niezerowa, Http.sys zawsze próbuje najpierw zdekodować adres URL jako UTF-8; Jeśli konwersja nie powiedzie się i EnableNonUTF8 jest niezerowa, Http.sys następnie próbuje ją zdekodować jako ANSI lub DBCS. Jeśli zero (i EnableNonUTF8 jest niezerowe), Http.sys próbuje dekodować go jako ansi lub DBCS; jeśli to się nie powiedzie, próbuje konwersji UTF-8. 0
MaxBytesPerSend 65536 1-0xFFFFF (bajty) Zastępuje rozmiar okna protokołu TCP używany przez Http.sys. Wyższa wartość może zapewnić większe szybkości pobierania w środowiskach sieciowych o dużej przepustowości i dużym opóźnieniu. 0
Maxconnections MAX_ULONG 1024 (1 tys.) — połączenia 2031616 (2 MB) MaxConnections Zastępuje obliczenia w sterowniku. Jest to przede wszystkim funkcja pamięci. 1
MaxEndpoints 0 0 - 1024 Maksymalna liczba obiektów bieżącego punktu końcowego, które są dozwolone. Wartość domyślna zero oznacza, że wartość maksymalna jest obliczana na podstawie dostępnej pamięci. 1
MaxFieldLength 16384 64 - 65534 (64k - 2) bajty 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ść jest dostosowywana.
1
PercentUAllowed 1 Wartość logiczna Jeśli niezerowa, Http.sys akceptuje notację %uNNNN w adresach URL żądania. 0
UrlSegmentMaxCount 255 0–16 383 segmentów Maksymalna liczba segmentów ścieżki adresu URL. Jeśli jest zero, liczba jest ograniczona maksymalną wartością ULONGwartości . 1
UriEnableCache 1 Wartość logiczna Jeśli niezerowa, Http.sys odpowiedź i pamięć podręczna 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ść zmiatacz pamięci podręcznej. Każda odpowiedź lub fragment, do którego nie uzyskano dostępu w liczbie sekund równej UriScavengerPeriod , jest opróżniany. 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 zero, jest to długość ograniczona maksymalną wartością ULONG. 1
DisableServerHeader 0 0 - 2 Ten klucz steruje zachowaniem http.sys w odniesieniu do dołączania serwera nagłówka odpowiedzi HTTP do 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 wartość domyślną 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 w odpowiedzi znajduje się nagłówek serwera, nie zostanie on usunięty, jeśli go nie ma, nie zostanie dodany. 0

W usługach Internet Information Services (IIS) może wystąpić niska wydajność, gdy aplikacje interfejsu API serwera internetowego (ISAPI) lub aplikacje interfejsu CGI (Common Gateway Interface) 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 w ramach następującego klucza rejestru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters

Klucz rejestru Wartość domyślna Prawidłowy zakres wartości Funkcja klucza rejestru KOD OSTRZEGAWCZY
CertChainCacheOnlyUrlRetrieval 1 0
1
Domyślnie wskazówki dotyczące sztucznej inteligencji nie są przestrzegane podczas walidacji łańcucha, gdy usługi IIS są skonfigurowane do używania certyfikatów klienta. To zachowanie jest spowodowane wydajnością i bezpieczeństwem. Takie zachowanie może na przykład pomóc w zapobieganiu atakom w usłudze DoS. Jednak to zachowanie może również prowadzić do nieoczekiwanych odrzuceń certyfikatów, gdy wymagane jest pobieranie AIA. Aby zastąpić to zachowanie, można ustawić parametr CertChainCacheOnlyUrlRetrieval DWORD na 0 (zero) w kluczu HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters rejestru. Nie dotyczy

Kody ostrzeżeń

  • 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ć podatność na złośliwe ataki.
  • 2: Niska wartość może spowodować częstsze opróżnianie pamięci podręcznej. W takim przypadku 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 zostaną wprowadzone dopiero po ponownym uruchomieniu 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:

  1. Wybierz pozycję Start, wybierz pozycję Uruchom, wpisz cmd, a następnie wybierz przycisk OK.

  2. W wierszu polecenia wpisz net stop http, a następnie naciśnij klawisz Enter.

  3. W wierszu polecenia wpisz net start http, a następnie naciśnij klawisz Enter.

  4. W wierszu polecenia wpisz net stop iisadmin /y, a następnie naciśnij klawisz Enter.

    Uwaga

    Wszystkie usługi usług IIS zależne od usługi IIS Administracja Service również zostaną zatrzymane. Zwróć uwagę na usługi IIS, które są zatrzymane po zatrzymaniu usługi IIS Administracja Service. W następnym kroku ponownie uruchomisz każdą usługę.

  5. 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 klawisz 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 World Wide Web, wpisz , net start World Wide Web Publishing Servicea następnie naciśnij klawisz Enter.