Как узнать, используются ли мои HTTP-соединения при тестировании с помощью консольного приложения C# с использованием HttpClient?Как узнать, работает ли соединение: keep-alive?
Я отправляю правильные заголовки (согласно Fiddler), но тайминги идентичны независимо от того, посылаю ли я заголовок Connection: keep-alive или нет.
Мне любопытно узнать, всегда ли он работает (даже без заголовка) или всегда не рабочий.
Мой код, чтобы установить его следующим образом (и я повторно использовать тот же экземпляр каждый раз):
if (String.IsNullOrEmpty(client.DefaultRequestHeaders.Connection.ToString()))
{
client.DefaultRequestHeaders.Add("Connection", "keep-alive");
}
Как и в сторону: я не могу видеть более простой способ, чтобы установить этот заголовок напрямую - вы можете добавить к нему только Add(). Это означает, что если вы дважды вызовете метод, вы получите «keep-alive, keep-alive» в качестве значения!
Путь к старому школьнику должен состоять в том, чтобы запустить * Wireshark * и посмотреть на сетевое соединение. Если все передано в одном потоке TCP, все в порядке. Если несколько соединений с целевым сервером открыты, они не соблюдают «Connection: keep-alive», но это очень маловероятно, если вы запрашиваете стандартный веб-сервер, например Apache, nginx, IIS и т. Д. Вы можете видеть только производительность вы можете использовать это для действительно большого количества файлов. –