Programmazione di rete in .NET

.NET offre un'implementazione a più livelli, estendibile e gestita di servizi Internet che possono essere integrati rapidamente e facilmente nelle app. Le app di rete possono essere compilate su protocolli collegabili per sfruttare automaticamente i vari protocolli Internet oppure possono usare un'implementazione gestita di interfacce socket multipiattaforma per lavorare con la rete a livello di socket.

App Internet

Le app Internet possono essere classificate in modo ampio in due tipi: le app client che richiedono informazioni e app server che rispondono alle richieste di informazioni dai client. L'app client-server Internet classica è il World Wide Web, in cui gli utenti usano i browser per accedere ai documenti e ad altri dati archiviati nei server Web in tutto il mondo.

Le app non sono limitate a uno di questi ruoli; Ad esempio, il server app di livello intermedio familiare risponde alle richieste dei client richiedendo dati da un altro server, nel qual caso funge da server e client.

L'app client richiede identificando la risorsa Internet richiesta e il protocollo di comunicazione da usare per la richiesta e la risposta. Se necessario, il client fornisce anche tutti i dati aggiuntivi necessari per completare la richiesta, come la posizione del proxy o le informazioni di autenticazione (nome utente, password e così via). Una volta creata, la richiesta può essere inviata al server.

Identificazione delle risorse

.NET usa un URI (Uniform Resource Identifier) per identificare la risorsa Internet e il protocollo di comunicazione richiesti. L'URI è costituito da almeno tre, e possibilmente quattro frammenti: l'identificatore dello schema, che identifica il protocollo di comunicazione per la richiesta e la risposta; l'identificatore del server, costituito da un nome host DNS (Domain Name System) o da un indirizzo TCP che identifica in modo univoco il server su Internet; l'identificatore del percorso, che individua le informazioni richieste nel server; e una stringa di query facoltativa, che passa le informazioni dal client al server.

Il System.Uri tipo viene usato come rappresentazione di un URI (Uniform Resource Identifier) e facile accesso alle parti dell'URI. Per creare un'istanza Uri di , è possibile passarla una stringa:

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 Uri classe esegue automaticamente la convalida e la canonizzazione per RCF 3986. Queste regole di convalida e canonizzazione vengono usate per garantire che un URI sia ben formato e che l'URI sia in formato canonico.

Vedi anche