HttpListenerResponse.KeepAlive Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets or sets a value indicating whether the server requests a persistent connection.
public:
property bool KeepAlive { bool get(); void set(bool value); };
public bool KeepAlive { get; set; }
member this.KeepAlive : bool with get, set
Public Property KeepAlive As Boolean
Property Value
true
if the server requests a persistent connection; otherwise, false
. The default is true
.
Exceptions
This object is closed.
Examples
The following code example demonstrates setting the value of this property.
// When the client is not authenticated, there is no Identity.
if (context.User == null)
{
message.Append ("<HTML><BODY><p> Hello local user! </p></BODY></HTML>");
}
else
{
// Get the requester's identity.
System.Security.Principal.WindowsIdentity identity = WindowsIdentity.GetCurrent();
// Construct the response body.
message.AppendFormat ("<HTML><BODY><p> Hello {0}!<br/>",
identity.Name);
message.AppendFormat ("You were authenticated using {0}.</p>",
identity.AuthenticationType);
message.Append ("</BODY></HTML>");
}
// Configure the response.
HttpListenerResponse response = context.Response;
// Use the encoding from the response if one has been set.
// Otherwise, use UTF8.
System.Text.Encoding encoding = response.ContentEncoding;
if (encoding == null)
{
encoding = System.Text.Encoding.UTF8;
response.ContentEncoding = encoding;
}
byte[] buffer = encoding.GetBytes (message.ToString ());
response.ContentLength64 = buffer.Length;
response.StatusCode = (int) HttpStatusCode.OK;
response.StatusDescription = "OK";
response.ProtocolVersion = new Version ("1.1");
// Don't keep the TCP connection alive;
// We don't expect multiple requests from the same client.
response.KeepAlive = false;
// Write the response body.
System.IO.Stream stream = response.OutputStream;
stream.Write(buffer, 0, buffer.Length);
' When the client is not authenticated, there is no Identity.
If context.User Is Nothing Then
message.Append("<HTML><BODY><p> Hello local user! </p></BODY></HTML>")
Else
' Get the requester's identity.
Dim identity As System.Security.Principal.WindowsIdentity = WindowsIdentity.GetCurrent()
' Construct the response body.
message.AppendFormat("<HTML><BODY><p> Hello {0}!<br/>", identity.Name)
message.AppendFormat("You were authenticated using {0}.</p>", identity.AuthenticationType)
message.Append("</BODY></HTML>")
End If
' Configure the response.
Dim response As HttpListenerResponse = context.Response
' Use the encoding from the response if one has been set.
' Otherwise, use UTF8.
Dim encoding As System.Text.Encoding = response.ContentEncoding
If encoding Is Nothing Then
encoding = System.Text.Encoding.UTF8
response.ContentEncoding = encoding
End If
Dim buffer() As Byte = encoding.GetBytes(message.ToString())
response.ContentLength64 = buffer.Length
response.StatusCode = CInt(HttpStatusCode.OK)
response.StatusDescription = "OK"
response.ProtocolVersion = New Version("1.1")
' Don't keep the TCP connection alive
' We don't expect multiple requests from the same client.
response.KeepAlive = False
' Write the response body.
Dim stream As System.IO.Stream = response.OutputStream
stream.Write(buffer, 0, buffer.Length)
Remarks
If an HTTP client and server expect to exchange data multiple times in a short period, a persistent connection speeds up their communications by allowing them to avoid the overhead required to open and close a TCP connection for each message. Persistent connections are in widespread use in communications between modern Web browsers and Web servers.
Persistent connections are described in detail in the HTTP/1.1 protocol specification (RFC 2616) available at the RTF Editor Web site (https://www.rfc-editor.org/).