Netzwerkprogrammierung in .NET
.NET bietet eine mehrschichtige, erweiterbare und verwaltete Implementierung von Internetdiensten, die schnell und einfach in Ihre Apps integriert werden können. Ihre Netzwerk-Apps können auf austauschbaren Protokollen aufbauen, um verschiedene Internetprotokolle automatisch nutzen zu können, oder sie können eine verwaltete Implementierung plattformübergreifender Socketschnittstellen verwenden, um mit dem Netzwerk auf Socketebene zu arbeiten.
Internet-Anwendungen
Internet-Apps können allgemein in zwei Arten klassifiziert werden: Client-Apps, die Informationen und Server-Apps anfordern, die auf Informationsanforderungen von Clients reagieren. Die klassische Internetclient-Server-App ist das World Wide Web, in dem Benutzer Browser verwenden, um auf Dokumente und andere Daten zuzugreifen, die weltweit auf Webservern gespeichert sind.
Apps sind nicht nur auf eine dieser Rollen beschränkt. Beispielsweise antwortet der vertraute App-Server der mittleren Ebene auf Anforderungen von Clients, indem Daten von einem anderen Server angefordert werden, in diesem Fall handelt es sich um einen Server und einen Client.
Die Client-App sendet Anfragen, indem sie die angeforderte Internetressource sowie das Kommunikationsprotokoll zur Nutzung für die Anfrage und Antwort identifiziert. Bei Bedarf stellt der Client auch zusätzliche Daten bereit, die zum Abschließen der Anforderung erforderlich sind, z. B. Proxyspeicherort oder Authentifizierungsinformationen (Benutzername, Kennwort usw.). Sobald die Anforderung gebildet wurde, kann die Anforderung an den Server gesendet werden.
Identifizieren von Ressourcen
.NET verwendet einen URI (Uniform Resource Identifier), um die angeforderte Internetressource und das Kommunikationsprotokoll zu identifizieren. Der URI besteht aus mindestens drei und möglicherweise vier Fragmenten: dem Schemabezeichner, der das Kommunikationsprotokoll für die Anforderung und Antwort identifiziert; der Serverbezeichner, der entweder aus einem DNS-Hostnamen (Domain Name System) oder einer TCP-Adresse besteht, die den Server im Internet eindeutig identifiziert; der Pfadbezeichner, der die angeforderten Informationen auf dem Server findet; und eine optionale Abfragezeichenfolge, die Informationen vom Client an den Server übergibt.
Der System.Uri Typ wird als Darstellung eines URI (Uniform Resource Identifier) und einfacher Zugriff auf die Teile des URI verwendet. Um eine Uri
-Instanz zu erstellen, können Sie eine Zeichenfolge übergeben:
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
Die Uri
-Klasse führt automatisch Validierung und Normierung gemäß RFC 3986durch. Diese Gültigkeitsprüfungs- und Kanonisierungsregeln werden verwendet, um sicherzustellen, dass ein URI wohlgeformt ist und sich der URI in kanonischer Form befindet.