Сетевое программирование в .NET

.NET предоставляет многоуровневую, расширяемую и управляемую реализацию интернет-служб, которую можно быстро и легко интегрировать в приложения. Сетевые приложения могут создаваться на основе подключаемых протоколов, чтобы автоматически использовать различные интернет-протоколы, или использовать управляемую реализацию кроссплатформенных интерфейсов сокетов для работы с сетью на уровне сокета.

Интернет-приложения

Интернет-приложения можно разделить на два типа: клиентские приложения, запрашивающие сведения, и серверные приложения, которые отвечают на информационные запросы от клиентов. Классическим интернет-серверным приложением является Интернет, где пользователи используют браузеры для доступа к документам и другим данным, хранящимся на веб-серверах по всему миру.

Приложения не ограничиваются только одной из этих ролей; Например, знакомый сервер приложений среднего уровня отвечает на запросы клиентов, запрашивая данные с другого сервера. В этом случае он выступает как сервер, так и клиент.

Клиентское приложение запрашивает, определяя запрошенный интернет-ресурс и протокол связи, используемый для запроса и ответа. При необходимости клиент также предоставляет любые дополнительные данные, необходимые для выполнения запроса, например расположение прокси-сервера или сведения для проверки подлинности (имя пользователя, пароль и т. д.). Как только запрос сформирован, его можно отправить на сервер.

Определение ресурсов

.NET использует универсальный код ресурса (URI) для идентификации запрошенного интернет-ресурса и протокола связи. Универсальный код ресурса (URI) состоит по крайней мере из трех и, возможно, четырех фрагментов: идентификатор схемы, который идентифицирует протокол связи для запроса и ответа; идентификатор сервера, который состоит из имени узла системы доменных имен (DNS) или TCP-адреса, который уникально идентифицирует сервер в Интернете; идентификатор пути, который находит запрошенные сведения на сервере; и необязательная строка запроса, которая передает сведения от клиента серверу.

Тип System.Uri используется в качестве представления универсального идентификатора ресурса (URI) и легкого доступа к частям URI. Чтобы создать Uri экземпляр, можно передать ему строку:

const string uriString =
    "https://docs.microsoft.com/en-us/dotnet/path?key=value#bookmark";

Uri canonicalUri = new(uriString);
Console.WriteLine(canonicalUri.Host);
Console.WriteLine(canonicalUri.PathAndQuery);
Console.WriteLine(canonicalUri.Fragment);
// Sample output:
//     docs.microsoft.com
//     /en-us/dotnet/path?key=value
//     #bookmark

Класс Uri автоматически выполняет проверку и канонизацию для каждого RCF 3986. Эти правила проверки и канонизации используются, чтобы убедиться, что URI имеет правильный формат и что URI находится в канонической форме.

См. также раздел