Programación de red en .NET
.NET proporciona una implementación por niveles, extensible y administrada de servicios de Internet que se pueden integrar de forma rápida y sencilla en las aplicaciones. Las aplicaciones de red pueden basarse en protocolos conectables para aprovechar automáticamente varios protocolos de Internet o pueden usar una implementación administrada de interfaces de socket multiplataforma para trabajar con la red en el nivel de socket.
Aplicaciones de Internet
Las aplicaciones de Internet se pueden clasificar ampliamente en dos tipos: aplicaciones cliente que solicitan información y aplicaciones de servidor que responden a las solicitudes de información de los clientes. La aplicación cliente-servidor de Internet clásica es World Wide Web, donde las personas usan exploradores para acceder a documentos y otros datos almacenados en servidores web en todo el mundo.
Las aplicaciones no se limitan solo a uno de estos roles; por ejemplo, el conocido servidor de aplicaciones de nivel intermedio responde a las solicitudes de los clientes solicitando datos de otro servidor, en cuyo caso actúa como un servidor y un cliente.
La aplicación cliente solicita mediante la identificación del recurso de Internet solicitado y el protocolo de comunicación que se va a usar para la solicitud y la respuesta. Si es necesario, el cliente también proporciona datos adicionales necesarios para completar la solicitud, como la ubicación del proxy o la información de autenticación (nombre de usuario, contraseña, etc.). Una vez formada la solicitud, la solicitud se puede enviar al servidor.
Identificación de recursos
.NET usa un identificador uniforme de recursos (URI) para identificar el protocolo de comunicación y recursos de Internet solicitado. El URI consta de al menos tres y, posiblemente, cuatro fragmentos: el identificador de esquema, que identifica el protocolo de comunicaciones para la solicitud y la respuesta; el identificador de servidor, que consta de un nombre de host del sistema de nombres de dominio (DNS) o una dirección TCP que identifica de forma única el servidor en Internet; el identificador de ruta de acceso, que localiza la información solicitada en el servidor; y una cadena de consulta opcional, que pasa información del cliente al servidor.
El tipo System.Uri se usa como representación de un identificador uniforme de recursos (URI) y fácil acceso a las partes del URI. Para crear una instancia de Uri
, puede pasar una cadena:
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
La clase Uri
realiza automáticamente la validación y la canonalización según el RFC 3986. Estas reglas de validación y canónica se usan para asegurarse de que un URI tiene un formato correcto y que el URI está en forma canónica.