Programação de rede no .NET
O .NET fornece uma implementação em camadas, extensível e gerenciada de serviços de Internet que podem ser integrados de forma rápida e fácil aos seus aplicativos. Seus aplicativos de rede podem criar protocolos pluggáveis para aproveitar automaticamente vários protocolos de Internet ou podem usar uma implementação gerenciada de interfaces de soquete entre plataformas para trabalhar com a rede no nível do soquete.
Aplicativos da Internet
Os aplicativos de Internet podem ser classificados amplamente em dois tipos: aplicativos cliente que solicitam informações e aplicativos de servidor que respondem a solicitações de informações de clientes. O aplicativo cliente-servidor clássico da Internet é a World Wide Web, onde as pessoas usam navegadores para acessar documentos e outros dados armazenados em servidores Web em todo o mundo.
Os aplicativos não estão limitados a apenas uma dessas funções; por exemplo, o servidor de aplicativo familiar de camada intermediária responde a solicitações de clientes solicitando dados de outro servidor, nesse caso, ele está agindo como um servidor e um cliente.
O aplicativo cliente solicita identificando o recurso de Internet solicitado e o protocolo de comunicação a ser usado para a solicitação e a resposta. Se necessário, o cliente também fornece quaisquer dados adicionais necessários para concluir a solicitação, como informações de localização ou autenticação de proxy (nome de usuário, senha e assim por diante). Depois que a solicitação for formada, a solicitação poderá ser enviada ao servidor.
Identificando recursos
O .NET usa um URI (uniform resource identifier) para identificar o recurso de Internet solicitado e o protocolo de comunicação. O URI consiste em pelo menos três e possivelmente quatro fragmentos: o identificador do esquema, que identifica o protocolo de comunicações para a solicitação e a resposta; o identificador do servidor, que consiste em um nome de host DNS (sistema de nomes de domínio) ou um endereço TCP que identifica exclusivamente o servidor na Internet; o identificador de caminho, que localiza as informações solicitadas no servidor; e 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 identificador de recurso uniforme (URI) e facilita o acesso às partes do URI. Para criar uma instância de Uri
, você pode passar uma string para ela.
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 canonização por RFC 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.