HTTP Keep-Alive header sent whenever ASP Buffering is enabled

This article was previously published under Q238210
This article has been archived. It is offered "as is" and will no longer be updated.
We strongly recommend that all users upgrade to Microsoft Internet Information Services (IIS) version 7.0 running on Microsoft Windows Server 2008. IIS 7.0 significantly increases Web infrastructure security. For more information about IIS security-related topics, visit the following Microsoft Web site:For more information about IIS 7.0, visit the following Microsoft Web site:
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.
This is by design.
The header can be disabled by adding the following code to the top of the ASP pages:
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.
Keep-Alive, IIS, Header, ISAPI, Content-Length, keep alive, content length iis5 iis6 iis 5.0 iis 6.0 iis 5 iis 6 iis4.0 iis4 iis 4.0

Article ID: 238210 - Last Review: 02/28/2014 00:27:55 - Revision: 5.1

  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 6.0
  • Microsoft Internet Information Services 5.0
  • kbnosurvey kbarchive kbpending kbprb KB238210