Programowanie sieci na platformie .NET

Platforma .NET zapewnia warstwową, rozszerzalną i zarządzaną implementację usług internetowych, które można szybko i łatwo zintegrować z aplikacjami. Aplikacje sieciowe mogą opierać się na protokołach podłączanych, aby automatycznie korzystać z różnych protokołów internetowych lub mogą używać zarządzanej implementacji interfejsów gniazd międzyplatformowych do pracy z siecią na poziomie gniazda.

Aplikacje internetowe

Aplikacje internetowe można ogólnie klasyfikować na dwa rodzaje: aplikacje klienckie, które żądają informacji i aplikacji serwerowych, które odpowiadają na żądania informacji od klientów. Klasyczna aplikacja internetowa client-server to World Wide Web, w której użytkownicy używają przeglądarek do uzyskiwania dostępu do dokumentów i innych danych przechowywanych na serwerach internetowych na całym świecie.

Aplikacje nie są ograniczone tylko do jednej z tych ról; na przykład znany serwer aplikacji warstwy środkowej odpowiada na żądania od klientów, żądając danych z innego serwera, w tym przypadku działa zarówno jako serwer, jak i klient.

Aplikacja kliencka żąda żądania, identyfikując żądany zasób internetowy i protokół komunikacyjny do użycia dla żądania i odpowiedzi. W razie potrzeby klient udostępnia również dodatkowe dane wymagane do ukończenia żądania, takie jak lokalizacja serwera proxy lub informacje o uwierzytelnianiu (nazwa użytkownika, hasło itd.). Po utworzeniu żądania żądanie można wysłać do serwera.

Identyfikowanie zasobów

Platforma .NET używa jednolitego identyfikatora zasobu (URI) do identyfikowania żądanego zasobu internetowego i protokołu komunikacyjnego. Identyfikator URI składa się z co najmniej trzech i prawdopodobnie czterech fragmentów: identyfikator schematu, który identyfikuje protokół komunikacyjny dla żądania i odpowiedzi; identyfikator serwera, który składa się z nazwy hosta systemu nazw domen (DNS) lub adresu TCP, który jednoznacznie identyfikuje serwer w Internecie; identyfikator ścieżki, który lokalizuje żądane informacje na serwerze; i opcjonalny ciąg zapytania, który przekazuje informacje z klienta do serwera.

Typ System.Uri jest używany jako reprezentacja jednolitego identyfikatora zasobu (URI) i łatwy dostęp do części identyfikatora URI. Aby utworzyć Uri wystąpienie, możesz przekazać go jako ciąg:

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

Klasa Uri automatycznie wykonuje walidację i kanonizację na RCF 3986. Te reguły walidacji i kanonizacji są używane w celu zapewnienia, że identyfikator URI jest prawidłowo sformułowany i że identyfikator URI jest w postaci kanonicznej.

Zobacz też