/// <summary>
        /// Updates the HTTP WEB header collection to prepare it for request.
        /// For each property set it adds member to m_httpResponseHeaders.
        /// m_httpResponseHeaders is serializes to string and sent to client.
        /// </summary>
        private void PrepareHeaders()
        {
            // Adds content length if it was present.
            if (m_ContentLength != -1)
            {
                m_httpResponseHeaders.ChangeInternal(HttpKnownHeaderNames.ContentLength, m_ContentLength.ToString());
            }

            // Since we do not support persistent connection, send close always.
            string connection = m_KeepAlive ? "Keep-Alive" : "Close";

            m_httpResponseHeaders.ChangeInternal(HttpKnownHeaderNames.Connection, connection);

            // Adds content type if user set it:
            if (m_contentType != null)
            {
                m_httpResponseHeaders.AddWithoutValidate(HttpKnownHeaderNames.ContentType, m_contentType);
            }

            if (m_redirectLocation != null)
            {
                m_httpResponseHeaders.AddWithoutValidate(HttpKnownHeaderNames.Location, m_redirectLocation);
                m_ResponseStatusCode = (int)HttpStatusCode.Redirect;
            }
        }