System.Net 클래스에 대한 모범 사례

다음 권장 사항은 System.Net에 포함된 클래스를 최대한 활용하는 데 도움이 됩니다.

  • TLS(전송 계층 보안) 모범 사례는 .NET Framework를 사용한 TLS(전송 계층 보안) 모범 사례를 참조하세요.

  • HttpClient를 사용하여 .NET 6에서 사용되지 않는 WebRequest 대신 HTTP 요청을 보내는 데 사용합니다. .NET Framework 요청을 보내야 할 때마다 새 HttpClient 인스턴스를 만듭니다. (.NET 5+/.NET Core에 대한 지침은 더 미묘합니다. 자세한 내용은 HttpClient 사용에 대한 지침 참조).

  • System.Net 클래스를 사용하여 서버에서 실행되는 ASP.NET 애플리케이션을 작성할 때는 성능 관점에서 대체로 Send 대신 SendAsync 비동기 메서드를 사용하는 것이 좋습니다.

  • 인터넷 리소스에 대해 열린 연결 수는 네트워크 성능 및 처리량에 상당한 영향을 줄 수 있습니다. System.Net은 기본적으로 호스트당 애플리케이션마다 두 개의 연결을 사용합니다. 애플리케이션에 대한 ServicePointConnectionLimit 속성을 설정하면 특정 호스트에 대해 이 개수를 늘릴 수 있습니다. ServicePointManager.DefaultPersistentConnectionLimit 속성을 설정하면 모든 호스트에 대해 이 기본값을 늘릴 수 있습니다.

  • 소켓 수준 프로토콜을 작성할 때는 가능한 경우 Socket에 직접 작성하는 대신 TcpClient 또는 UdpClient를 사용합니다. 이러한 두 클라이언트 클래스는 연결의 세부 정보를 처리할 필요 없이 TCP 및 UDP 소켓 생성을 캡슐화합니다.

  • 자격 증명을 요구하는 사이트에 액세스하는 경우 요청할 때마다 자격 증명을 제공하는 대신 CredentialCache 클래스를 사용하여 자격 증명 캐시를 만듭니다. CredentialCache 클래스는 캐시를 검색하여 요청과 함께 제공할 적절한 자격 증명을 찾아 URL을 기준으로 자격 증명을 만들고 제공해야 하는 부담을 덜어줍니다.

참조