Поделиться через


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

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

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

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

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

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

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

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

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

const string uriString =
    "https://learn.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:
//     learn.microsoft.com
//     /en-us/dotnet/path?key=value
//     #bookmark

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

См. также