Сетевое программирование в .NET
.NET предоставляет многоуровневую, расширяемую и управляемую реализацию интернет-служб, которые можно быстро и легко интегрировать в приложения. Сетевые приложения могут создаваться на подключаемых протоколах, чтобы автоматически использовать различные интернет-протоколы или использовать управляемую реализацию кроссплатформенных интерфейсов сокетов для работы с сетью на уровне сокета.
Интернет-приложения
Интернет-приложения можно классифицировать в двух типах: клиентские приложения, которые запрашивают информацию и серверные приложения, реагирующие на запросы информации от клиентов. Классическое приложение internet-client-server — это World Wide Web, где пользователи используют браузеры для доступа к документам и другим данным, хранящимся на веб-серверах по всему миру.
Приложения не ограничены только одной из этих ролей; Например, знакомый сервер приложений среднего уровня отвечает на запросы от клиентов, запрашивая данные с другого сервера, в этом случае он выступает как сервером, так и клиентом.
Клиентское приложение запрашивает запрашиваемый интернет-ресурс и протокол связи для использования для запроса и ответа. При необходимости клиент также предоставляет любые дополнительные данные, необходимые для выполнения запроса, например расположение прокси-сервера или сведения для проверки подлинности (имя пользователя, пароль и т. д.). Как только запрос сформирован, его можно отправить на сервер.
Определение ресурсов
.NET использует универсальный идентификатор ресурса (URI) для идентификации запрошенного интернет-ресурса и протокола связи. Универсальный код ресурса (URI) состоит по крайней мере из трех и, возможно, четырех фрагментов: идентификатор схемы, который определяет протокол связи для запроса и ответа; идентификатор сервера, состоящий из имени узла системы доменных имен (DNS) или TCP-адреса, который однозначно идентифицирует сервер в Интернете; идентификатор пути, который находит запрошенные сведения на сервере; и необязательная строка запроса, которая передает сведения от клиента на сервер.
Тип System.Uri используется в качестве представления универсального идентификатора ресурса (URI) и простого доступа к частям URI. Чтобы создать Uri
экземпляр, можно передать строку:
const string uriString =
"https://video2.skills-academy.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:
// video2.skills-academy.com
// /en-us/dotnet/path?key=value
// #bookmark
Класс Uri
автоматически выполняет проверку и канонизацию на RCF 3986. Эти правила проверки и канонизации используются для обеспечения правильного формирования URI и того, что универсальный код ресурса (URI) находится в канонической форме.