Programação de rede no .NET

O .NET fornece uma implementação dos serviços de Internet em camadas, extensível e gerenciada que pode ser rápida e facilmente integrada aos aplicativos. Seus aplicativos de rede podem compilar em protocolos conectáveis para usufruir automaticamente de novos protocolos da Internet ou podem usar uma implementação gerenciada da interface de soquete da plataforma cruzada para trabalhar com a rede a nível de soquete.

Aplicativos da Internet

Os aplicativos da Internet podem ser classificados amplamente em dois tipos: aplicativos cliente que solicitam informações e aplicativos para servidores que respondem às solicitações de informações feitas por clientes. O aplicativo cliente-servidor clássico de Internet é a World Wide Web, em que as pessoas usam navegadores para acessar documentos e outros dados armazenados em servidores Web em todo o mundo.

Os aplicativos não se limitam a apenas uma dessas funções. Por exemplo, o servidor de aplicativos familiar de camada intermediária responde a solicitações de clientes, solicitando dados em outro servidor, caso em que ele está atuando como um servidor e também como um cliente.

O aplicativo do cliente faz uma solicitação identificando o recurso da Internet solicitado e o protocolo de comunicação a usar para a solicitação e resposta. Se necessário, o cliente também fornece quaisquer dados adicionais necessários para concluir a solicitação, assim como autenticação ou local de informações de proxy (nome de usuário, senha e assim por diante). Depois que a solicitação é formada, ela pode ser enviada ao servidor.

Identificando recursos

O .NET usa URI (Uniform Resource Identifier) para identificar o protocolo de comunicação e recursos de Internet solicitado. O URI consiste em pelo menos três, provavelmente quatro fragmentos: o identificador do esquema, que identifica o protocolo de comunicação de solicitação e resposta; o identificador do servidor, que consiste em um nome do host do sistema de nome de domínio (DNS) ou um endereço TCP que identifica exclusivamente o servidor na Internet; o identificador do caminho, que localiza as informações solicitadas no servidor e, por fim, uma cadeia de caracteres de consulta opcional, que passa informações do cliente para o servidor.

O tipo System.Uri é usado como uma representação de um URI (Uniform Resource Identifier) e fácil acesso às partes do URI. Para criar uma instância Uri, você pode passar uma cadeia de caracteres:

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

A classe Uri executa automaticamente a validação e a canonicalização por RCF 3986. Essas regras de validação e canonicalização são usadas para garantir que um URI seja bem formado e que o URI esteja em uma forma canônica.

Confira também