HTTP Keep-Alive header sent whenever ASP Buffering is enabled (238210)
The information in this article applies to:
- Microsoft Internet Information Server 4.0
- Microsoft Internet Information Services version 6.0
- Microsoft Internet Information Services 5.0
This article was previously published under Q238210 We strongly recommend that all users upgrade to Microsoft Internet Information Services (IIS) version 6.0 running on Microsoft Windows Server 2003. IIS 6.0 significantly increases Web infrastructure security. For more information about IIS security-related topics, visit the following Microsoft Web site: SYMPTOMS
Whenever ASP Buffering is enabled, either through the Microsoft Management Console (MMC) or programmatically in the Active Server Pages (ASP) page (response.buffer=true), an HTTP Keep-Alive header will be sent along with the Content-Length.
Note This problem occurs only on HTTP 1.0 clients. An HTTP Keep-Alive header is not sent for HTTP 1.1 clients.
In communications between HTTP 1.1 clients and HTTP 1.1 servers, the Keep-Alive header is implied, so the header is not actually sent.
CAUSE
This is by design.
WORKAROUND
The header can be disabled by adding the following code to the top of the ASP pages:
<%response.flush%>
MORE INFORMATION
This behavior occurs even if Keep-Alives are disabled in the MMC. The Keep-Alive will be ignored by HTTP 1.0 (browser) clients. HTTP 1.0 Proxies will require the Content-Length header to also be present. This is transmitted by default but could be modified by an Internet server application programming interface (ISAPI) filter. If a filter is used and the Content-Length is not sent, then you will have to implement the workaround described above.
Modification Type: | Minor | Last Reviewed: | 6/23/2005 |
---|
Keywords: | kbpending kbprb KB238210 |
---|
|