케스트렐과 카타나의 구별
현재 카타나를 사용하여 웹 API를 자체 호스팅할 수 있으며, MVC는 향후 버전에서 이 기능을 제공할 것으로 알고 있습니다.기본적으로 Katana는 MVC와 WebAPI 모두에서 사용할 수 있는 호스팅 옵션이 될 것입니다.
Kestrel이 사진에 들어갔고, 몇몇 MS 직원들이 Linux에서 ASP.NET vNext 호스팅 시연에 대해 블로그를 하고 있는 것을 보았습니다.
Kestrel과 Katana 모두 OWIN 파이프라인을 구현하는 것으로 알고 있습니다.
거기서부터 모든 것이 약간 흐릿합니다.모노로 컴파일하고 플랫폼 간 호환을 위해 노력한다면 카타나가 같은 목적을 수행할 수 있을 것 같은데 왜 Kestrel이 사진에 들어갔는지 자문합니다.
케스트렐과 카타나는 같은 목적을 수행합니까?아니면 하나는 다른 하나는 그렇지 않은 방식으로 전문화되어 있습니까?
Kestrel은 결국 Windows 구축을 위한 실행 가능한 선택이 될 것입니까?아니면 Windows가 아닌 환경에 특화될 것이며 Katana는 여전히 Windows를 선택할 것입니까?
카타나/케스트렐에 대한 지식이 부족하여 사과와 오렌지를 비교할 수 있다는 것을 알고 있지만, 만약 대답이 "오렌지는 사과보다 더 산성의 맛을 가지고 있다"라면 IMO는 완벽하게 유효한 대답입니다.
Katana는 Microsoft의 OWIN 구현이며 보안/인증, 정적 파일 제공 및 기타 몇 가지를 위한 미들웨어 구성 요소도 포함되어 있습니다.
Kestrel은 ASP.NET 5와 함께 사용할 수 있는 Microsoft의 교차 플랫폼 개발 웹 서버입니다.
ASP.NET 5는 OWIN을 구현하지 않지만 Kestrel에서 실행되는 것을 포함하여 ASP.NET 5 응용 프로그램에서 OWIN 구성 요소를 사용할 수 있도록 "브릿지"를 가지고 있습니다.
저는 이 질문에 대한 다른 답변을 읽고도 여전히 명확한 그림을 이해하지 못합니다. 그래서 저는 몇 가지 조사를 했고 다음과 같은 결론을 내렸습니다.
- OWIN은 웹 서버(Kestrel 및 Katana가 제공하는 서버 등)와 웹 애플리케이션(사용자가 제공하는 코드) 간의 프로그래밍 인터페이스를 정의하는 사양입니다.
- Kestrel은 ASP.NET Core에서 제공됩니다.OWIN 호환 웹 서버입니다.
- 카타나는 ASP.NET 4.X에서 왔습니다.OWIN 서버를 포함한 마이크로소프트의 OWIN 구현의 집합입니다.
마지막으로 중요한 것은:
ASP.NET 5가 비활성화되었으며 ASP.NET Core로 대체되었습니다.그러니 더 이상 언급하지 마세요.
(2019/06/28 업데이트: "오늘은 .NET Core 3.0 다음 릴리스가 .NET 5가 될 것임을 알려드립니다." - BYMS https://devblogs.microsoft.com/dotnet/introducing-net-5/즉, ASP.Net 5가 있을 것이며, 이는 사실상 차세대 ASP.Net Core입니다.)
OWIN은 ASP.NET 4.X와 ASP.NET Core 모두에서 핵심/필수 요소입니다.
자세한 내용은 https://www.quora.com/Is-ASP-NET-Core-a-replacement-for-OWIN-Katana 을 참조하십시오.
오래된 질문일 수도 있지만, 빠른 구글 검색이 저를 여기로 이끌었기 때문에 다른 사람들은 비슷한 질문을 하지 않았다고 생각합니다.
ASP.NET 5 설명서 인용:
케스트렐
Kestrel은 크로스 플랫폼 비동기 I/O 라이브러리인 libuv를 기반으로 하는 크로스 플랫폼 웹 서버입니다.Kestrel은 오픈 소스이며 GitHub에서 Kestrel 소스를 볼 수 있습니다.project.json에 나열된 프로젝트 종속성에 "Kestrel"을 포함하여 Kestrel에 대한 지원을 추가합니다.
서버 선택
윈도우즈 서버에 응용 프로그램을 배포하려면 IIS를 Kestrel에 대한 요청을 관리하고 프록시하는 역방향 프록시 서버로 실행해야 합니다.Linux에서 배포하는 경우 Apache 또는 Nginx와 같은 유사한 역방향 프록시 서버를 실행하여 Kestrel에 대한 프록시 요청을 실행해야 합니다.
서비스 패브릭에서 실행되는 것과 같은 자체 호스팅 시나리오의 경우 IIS 없이 Kestrel을 사용하는 것이 좋습니다.그러나 자가 호스팅 시나리오에서 Windows 인증이 필요한 경우에는 WebListener를 선택해야 합니다.
그래서 제가 이해하는 바는: 만약 Kestrel이 단지 개발 서버였다면, 그것은 더 이상 아니고 어떻게든 Katana와 OWIN을 대체하고 있다는 것입니다.
프로젝트 카타나는 마이크로소프트가 OWIN을 위한 IIS에 지원을 추가하고 OwinHost.exe를 만들고 응용 프로그램이 자체 호스팅 웹 API와 인터페이스할 수 있도록 라이브러리를 제공하는 것을 포함합니다.Microsoft와 같은 일부 라이브러리.Owin.Security는 ASP.NET MVC 5(ASP.NET Core가 아님)에서 OWIN을 통해 ID/인증을 연결하는 데 사용되지만 MVC 5는 자체 호스팅을 지원하지 않습니다(다른 도구를 사용할 수도 있음).자체 호스팅 라이브러리는 WebAPI 전용입니다.
"Katana"는 OWIN에 대한 웹 애플리케이션 지원뿐만 아니라 호스트 구현을 가리키는 광범위한 용어입니다. "이러한 구성 요소에는 호스트 및 서버와 같은 인프라 구성 요소와 SignalR 및 ASP.NET Web API와 같은 프레임워크에 대한 바인딩과 같은 기능 구성 요소가 모두 포함됩니다."
웹 응용프로그램 측면을 나타내는 "Migrate from Katana to ASP.NET Core"와 같은 문구를 볼 수 있습니다.마이크로소프트를 버린다는 뜻입니다.Owin 라이브러리 및 추가 라이브러리 없이 완전한 OWIN 지원이 내장된 ASP.NET Core를 사용합니다.또는 카타나 호스트에서 케스트렐과 같은 다른 호스트로 이동하는 것을 의미하는 유사한 문구를 볼 수 있습니다.유감스럽게도 이 용어는 구현의 어느 한 쪽을 가리키는 말로 사용되며, 이에 대한 논의의 맥락에 주의해야 합니다.
Kestrel은 호스트 구현일 뿐입니다.OWIN 호스팅 지원을 여러 플랫폼에 걸쳐 제공하는 것이 목표입니다.더 가볍고 IIS만큼 완전한 기능이나 성숙하지 않습니다.IIS, Apache, nginx 또는 기타와 같은 보다 안전하고 재버스트된 웹 서버의 역방향 프록시 뒤에서 사용하는 것이 좋습니다.Kestrel은 Microsoft의 현재 문서에서 ASP.NET Core 웹 응용 프로그램을 Linux와 같은 다른 플랫폼에 배포할 때 호스트로 권장하는 사항입니다.
ASP.Net Core 프로젝트를 생성하는 경우 Kestrel은 현재 기본적으로 포함되어 있습니다.ASP.NET Core가 지원하는 플랫폼과 동일한 플랫폼에서 지원됩니다.
언급URL : https://stackoverflow.com/questions/27727161/distinction-between-kestrel-and-katana
'programing' 카테고리의 다른 글
HttpOnly Spring 부팅 끄기 (0) | 2023.07.11 |
---|---|
임의의 날짜로 행을 업데이트하는 방법 (0) | 2023.07.11 |
판다의 여러 데이터 프레임 열에서 "별도로" 선택하는 방법은 무엇입니까? (0) | 2023.07.11 |
스프링 부트 - 대체 시작 클래스를 지정하는 방법(다중 진입점) (0) | 2023.07.11 |
비동기식으로 요청을 사용하려면 어떻게 해야 합니까? (0) | 2023.07.11 |