Клиентский HTTP в .NET: От WebRequest до SocketsHttpHandler

RU / День 1 / 14:00 / Зал 3

На первый взгляд кажется, что отправить HTTP-запрос — это очень просто. Тем не менее, даже HTTP/1.1 достаточно нетривиален: RFC на него содержит более 150 страниц, кроме того, браузеры уже поддерживают HTTP/2 и HTTP/3. Это сразу же заставляет использовать готовый клиент, вместо следования NIH-синдрому.

На пути от .NET Framework 1.0 к .NET Core 3.1 API для работы с HTTP, его реализации, особенности обработки граничных случаев в них претерпели множество изменений, что привело к спорам среди разработчиков о том, как правильно и эффективно это API следует использовать.

В докладе Евгений расскажет о истории развития HTTP API в .NET, о его особенностях и внутреннем устройстве в различных реализациях .NET: Framework, Core 2.0-3.1, Mono, о миграции приложений с Framework на Core с учётом этих особенностей. Также спикер разберет некоторые хаки, с которыми сталкивался на практике, развеет мифы о работе с HTTP-клиентом. Напоследок мы заглянем в NuGet и рассмотрим представленные в нём обёртки над HTTP API с точки зрения эффективности и кроссплатформенности.