.NET 네트워크 프로그래밍

.NET은 더 빠르고 쉽게 앱에 통합할 수 있는 계층적이고 확장 가능하며 관리되는 인터넷 서비스 구현을 제공합니다. 네트워크 앱은 플러그 가능한 프로토콜을 바탕으로 빌드하여 다양한 인터넷 프로토콜을 자동으로 이용하거나, 플랫폼 간 소켓 인터페이스의 관리형 구현을 사용하여 소켓 수준에서 네트워크 작업을 수행할 수 있습니다.

인터넷 앱

인터넷 앱은 정보를 요청하는 앱과 클라이언트의 정보 요청에 응답하는 서버 앱의 두 가지 종류로 분류할 수 있습니다. 클래식 인터넷 클라이언트-서버 앱은 사용자가 브라우저를 사용하여 전 세계 웹 서버에 저장된 문서와 다른 데이터에 액세스하는 World Wide Web입니다.

앱은 이러한 역할 중 하나만으로 제한되지 않습니다. 예를 들어 익숙한 중간 계층 앱 서버는 다른 서버의 데이터를 요청하여 클라이언트의 요청에 응답합니다. 이 경우 이 애플리케이션 서버는 동시에 서버 및 클라이언트로 동작합니다.

클라이언트 앱은 요청 및 응답에 사용할 요청된 인터넷 리소스 및 통신 프로토콜을 식별하여 요청을 만듭니다. 필요한 경우 클라이언트는 요청을 완료하는 데 필요한 프록시 위치 또는 인증 정보(사용자 이름, 암호 등)와 같은 추가 데이터도 제공합니다. 요청이 구성된 후 요청이 서버에 전송될 수 있습니다.

리소스 식별

.NET은 URI(Uniform Resource Identifier)를 사용하여 요청된 인터넷 리소스 및 통신 프로토콜을 식별합니다. URI는 다음과 같은 조각 중 3개 이상, 가능할 경우 4개로 구성됩니다. 요청 및 응답에 대한 통신 프로토콜을 식별하는 구성표 식별자, 인터넷에서 서버를 고유하게 식별하는 DNS(Domain Name System) 호스트 이름 또는 TCP 주소로 구성된 서버 식별자, 요청된 정보를 서버에 배치하는 경로 식별자 및 클라이언트에서 서버로 정보를 전달하는 선택적 쿼리 문자열.

System.Uri 형식은 URI(Uniform Resource Identifier)의 표현으로 사용되며 URI 부분에 쉽게 액세스할 수 있도록 합니다. Uri 인스턴스를 만들려면 문자열을 전달할 수 있습니다.

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

Uri 클래스는 RCF 3986에 따라 유효성 검사 및 정규화를 자동으로 수행합니다. 이러한 유효성 검사 및 정규화 규칙은 URI가 올바른 형식이고 URI가 정식 형식인지 확인하는 데 사용됩니다.

추가 정보