Ответ 1
Он работает на моей машине, но я не вижу, чтобы это было документировано. Я бы, конечно, ожидал, что это будет по умолчанию. Самый простой способ - запустить Wireshark (или Fiddler) и посмотреть, что именно происходит по кабелю.
Например, эта программа:
using System;
using System.Net;
class Test
{
static void Main()
{
WebClient client = new WebClient();
for (int i = 0; i < 50; i++)
{
string text = client.DownloadString("http://www.microsoft.com");
Console.WriteLine(text.Length);
}
}
}
Создает первый запрос:
GET / HTTP/1.1
Host: www.microsoft.com
Connection: Keep-Alive
Запросы подпоследовательности:
GET / HTTP/1.1
Host: www.microsoft.com
... предположительно потому, что, как только соединение находится в режиме KeepAlive, он предположил, что он останется таким.