Http.sys registry settings for Windows

Article translations Article translations
Article ID: 820129 - View products that this article applies to.
Expand all | Collapse all

On This Page

Summary

In Windows Server 2003 and later versions, Http.sys is the kernel mode driver that handles HTTP requests. Several registry values can be configured according to specific requirements. The table in the "More Information" section contains the following information about these registry values: 
  • Registry key names
  • Default values
  • Valid value ranges
  • Registry key functions
  • WARNING codes (where applicable)
Note See the "WARNING Codes" section for information about potential risks when you create and configure registry values by using settings other than the default settings.

This article is intended for advanced users and assumes knowledge of the registry and of the risks that are involved when the registry is changed.

More information

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows


You can create the following DWORD values under the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
Collapse this tableExpand this table
Registry keyDefault valueValid value rangeRegistry key functionWARNING code
AllowRestrictedChars0BooleanIf nonzero, Http.sys accepts hex-escaped chars in request URLs that decode to U+0000 – U+001F and U+007F – U+009F ranges.0
EnableAggressiveMemoryUsage00,1Preallocate nonpaged pool memory. By default, the HTTP service stops accepting connections when less than 20 megabytes (MB) of nonpaged pool memory is available. After you add this value to the registry, the HTTP service stops accepting connections when less than 8 MB of nonpaged pool memory is available. Setting this registry value may reduce the number of "Connections_refused" and 503 errors in the Httperr.log file. 

Note This applies only to Windows Server 2003.
0
EnableNonUTF81BooleanIf zero, Http.sys accepts only UTF-8-encoded URLs. If nonzero, Http.sys also accepts ANSI- or DBCS-encoded URLs in requests.0
FavorUTF81BooleanIf nonzero, Http.sys always tries to decode a URL as UTF-8 first; if that conversion fails and EnableNonUTF8 is nonzero, Http.sys then tries to decode it as ANSI or DBCS. If zero (and EnableNonUTF8 is nonzero), Http.sys tries to decode it as ANSI or DBCS; if that is not successful, it tries a UTF-8 conversion.0
MaxBytesPerSend655361-0xFFFFF (Bytes)Overrides the TCP window size that is used by Http.sys. A higher value may enable higher download speeds in network environments that have high bandwidth and high latency.

Note This applies only to Windows Server 2003.
0
MaxConnectionsMAX_ULONG1024(1k) – 2031616 (2MB) connectionsOverrides the MaxConnections calculation in the driver. This is primarily a function of memory.1
MaxEndpoints00 - 1024 The maximum number of current endpoint objects that are permitted. The default value of zero implies that the maximum is computed from available memory.

Note This applies only to Windows Server 2003.
1
MaxFieldLength1638464 - 65534 (64k - 2) bytesSets an upper limit for each header. See MaxRequestBytes. This limit translates to approximately 32k characters for a URL.1
MaxRequestBytes16384256 - 16777216 (16MB) bytesDetermines the upper limit for the total size of the Request line and the headers.
Its default setting is 16KB. If this value is lower than MaxFieldLength, the MaxFieldLength value is adjusted.
1
PercentUAllowed1BooleanIf nonzero, Http.sys accepts the %uNNNN notation in request URLs.0
UrlSegmentMaxCount2550 - 16,383 segments Maximum number of URL path segments. If zero, the count bounded by the maximum value of a ULONG.1
UriEnableCache1BooleanIf nonzero, the Http.sys response and fragment cache is enabled.0
UriMaxUriBytes262144 (bytes)4096(4k) – 16777216(16MB) bytes Any response that is greater than this value is not cached in the kernel response cache.1
3
UriScavengerPeriod120 (seconds)10 - 0xFFFFFFFF secondsDetermines the frequency of the cache scavenger. Any response or fragment that has not been accessed in the number of seconds equal to UriScavengerPeriod is flushed.1
2
UrlSegmentMaxLength 2600 - 32,766 chars Maximum number of characters in a URL path segment (the area between the slashes in the URL). If zero, it is the length that is bounded by the maximum value of a ULONG.1
You may experience slow performance in Internet Information Services (IIS) 6.0 when Internet Server API (ISAPI) applications or Common Gateway Interface (CGI) applications that are hosted on IIS 6.0 send responses. If you experience this issue, you can add the MaxBufferedSendBytes DWORD value to the registry. For more information about this issue, click the following article number to view the article in the Microsoft Knowledge Base:
906977 BUG: You experience slow performance when ISAPI applications and CGI applications that are hosted on Internet Information Services 6.0 send responses
In Windows XP and later versions, and in Windows Server 2003 and later versions, you can also create the following DWORD value under the following registry key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters
Collapse this tableExpand this table
Registry keyDefault valueValid value rangeRegistry key functionWARNING code
CertChainCacheOnlyUrlRetrieval10,1By default, the AIA hints are not followed during chain validation when IIS is configured to use Client Certificates. This behavior is for performance and security reasons. For example, this behavior can help prevent DoS attacks. However, this behavior can also lead to unexpected certificate rejections when AIA retrieval is needed. To override this behavior, you can set the DWORD parameter CertChainCacheOnlyUrlRetrieval to 0 (zero) under the "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters" registry key.Not applicable

WARNING codes

  • 0: No risks.
  • 1: Changing this registry key is considered extremely dangerous. This key causes Http.sys to use more memory and may increase vulnerability to malicious attacks.
  • 2: A low value may cause the cache to be flushed more frequently. If this behavior occurs, it may affect performance.
  • 3: A low value may affect performance for static content.


Changes that are made to the registry will not take effect until you restart the HTTP service. Additionally, you may have to restart any related IIS services.

To restart the HTTP service, type and all related IIS services, follow these steps:
  1. Click Start, click Run, type Cmd, and then click OK.
  2. At the command prompt, type net stop http, and then press Enter.
  3. At the command prompt, type net start http, and then press Enter.
  4. At the command prompt, type net stop iisadmin /y, and then press Enter.

    Note Any IIS services that depend on the IIS Admin Service service will also be stopped. Notice the IIS services that are stopped when you stop the IIS Admin Service service. You will restart each service in the next step.
  5. Restart the IIS services that were stopped in step 4. To do this, type net start servicename at the command prompt and then press Enter. In the command, servicename is the name of the service that you want to restart. For example, to restart the World Wide Web Publishing Service service, type net start "World Wide Web Publishing Service", and then press Enter.

Properties

Article ID: 820129 - Last Review: January 9, 2013 - Revision: 9.0
Applies to
  • Windows Server 2012 Standard
  • Windows 8
  • Windows 8 Pro
  • Windows 8 Enterprise
  • Windows 7 Professional
  • Windows 7 Enterprise
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 Enterprise
  • Windows Vista Enterprise
  • Windows Vista Ultimate
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard x64 Edition
  • Microsoft Windows Server 2003 R2 Enterprise x64 Edition
Keywords: 
kbinfo KB820129

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com