Повторное использование http-соединения

Я хотел бы лучше понять, как работает повторное использование http.Net.

  1. Когда я использую HttpWebRequest для двойной отправки чего-либо на один и тот же сервер дважды с одного и того же домена приложения, используется ли соединение (необязательно) повторно? Таким образом, сервер будет видеть оба запроса как исходящие от одного и того же соединения, хотя в моем приложении это разные логические запросы.

  2. Если да, можно ли отключить это поведение?

  3. А как насчет соединений, которые используют аутентификацию / ssl - они также также используются повторно? Если я предоставляю разные учетные данные / политику для каждого запроса, это может быть дырой в безопасности.

2 ответа

Повторное использование соединения использует HTTP Keep-alive, который является функцией HTTP/1.1. Используя HTTP Keep-alive, одно TCP-соединение используется для последовательной обработки нескольких HTTP-запросов, поэтому вы экономите время на открытие нового TCP-соединения для каждого запроса. Каждый HTTP-запрос сам по себе снова становится независимым, поэтому аутентификация и аналогичные параметры не будут автоматически использоваться повторно.

Как говорится в RFC в http://tools.ietf.org/html/rfc2616 Заголовок HTTP: Connection: Keep-Alive

это то, что используется в HTTP 1.0, потому что соединение не было постоянным.

с http 1.1 все соединения по умолчанию являются постоянными, что означает, что этот заголовок больше не используется.

Другие вопросы по тегам