먼저 Asp.net의 작동 방식에 대해 이야기해 보겠습니다.
구체적인 설명은 다음과 같습니다. 먼저 고객이 WEB 페이지를 요청합니다. 그런 다음 웹 서비스는 명령 파일(.aspx)을 찾고 이는 동적 링크 라이브러리 aspnet_isapi.dll에 의해 처리됩니다. 그런 다음 Asp.net 코드는 컴파일을 위해 공용 언어 런타임으로 전송됩니다. 그런 다음 HTML 스트림이 브라우저로 반환되어 주문됩니다. 마지막으로 브라우저는 HTML을 처리하고 페이지를 표시합니다.
ISAPI란 무엇입니까?
인터넷 시대 초기에는 클라이언트에게 필요한 것은 .htm 파일뿐이었습니다. 그러나 시간이 지남에 따라 클라이언트는 .htm 파일이나 정적 파일에 포함된 기능 이상으로 확장해야 합니다.
개발자는 웹 서버의 기능을 확장하거나 확장해야 합니다. 웹 서버 공급업체는 서로 다른 솔루션을 설계했지만 모두 웹 서버에 특정 구성 요소를 삽입한다는 동일한 주제를 따릅니다. 모든 웹 서버 보완 기술을 통해 개발자는 구성 요소를 구축하고 연결하여 웹 서버 기능을 향상시킬 수 있습니다. Microsoft는 ISAPI(Internet Server API)를 제안했고 Netscape는 NSAPI(Netscape Server API) 등을 제안했습니다. ISAPI는 ISAPI 호환 웹 서버(IIS는 ISAPI 호환 웹 서버)의 기능을 향상시킬 수 있는 중요한 기술입니다. 이를 달성하기 위해 우리는 다음 구성 요소를 사용합니다.
1. ISAPI 확장: ISAPI 확장은 Win32 동적 링크 라이브러리를 사용하여 구현됩니다. ISAPI 확장을 일반 응용 프로그램으로 생각할 수 있습니다. ISAPI 확장의 처리 대상은 http 요청입니다.
2. ISAPI 필터: 클라이언트가 서버에 요청할 때마다 요청은 필터를 통과해야 합니다. 클라이언트는 요청에 필터를 지정할 필요가 없고 단순히 웹 서버에 요청을 보내고, 웹 서버는 해당 요청을 해당 필터에 전달합니다. 다음으로 필터는 요청을 수정하고 일부 로그인 작업 등을 수행할 수 있습니다.
ASP.NET 요청 처리 프로세스:
ASP.NET 요청 처리 프로세스는 ASP.NET이 http 요청을 파이프라인의 모든 모듈에 전달하는 파이프라인 모델을 기반으로 합니다. 각 모듈은 http 요청을 수신하고 모든 권한을 갖습니다. 모듈은 적합하다고 판단되는 방식으로 요청을 처리할 수 있습니다. 요청이 모든 HTTP 모듈을 통과하면 최종적으로 HTTP 핸들러에 의해 처리됩니다. HTTP 핸들러는 요청에 대해 일부 처리를 수행하고 결과는 다시 파이프라인의 HTTP 모듈을 통과합니다.
ISAPI 필터:
IIS 자체는 동적 페이지를 지원하지 않습니다. 즉, .asp, .aspx, .cgi, .php 등과 같은 정적 HTML 페이지의 콘텐츠만 지원하며 IIS는 이러한 태그를 처리하지 않습니다. as 구성 텍스트는 아무런 처리 없이 클라이언트에 전송됩니다. 이 문제를 해결하기 위해. IIS에는 표준 구성 요소(COM 구성 요소)인 ISAPI 필터라는 메커니즘이 있습니다.
Asp.net 서비스가 IIS에 등록되면 각 확장이 IIS에서 처리할 수 있는 파일 확장명(예: *.ascx, *.aspx 등)을 등록합니다. 확장이 시작된 후 정의된 방법에 따라 IIS에서 처리할 수 없는 파일을 처리한 다음 해당 코드를 특별히 처리하는 프로세스로 제어권을 넘겨 이 프로세스에서 코드 처리를 시작하고 표준 HTML 코드를 생성한 후 생성 후 이러한 코드를 원본 Html에 추가하고 마지막으로 전체 Html을 IIS에 반환한 다음 IIS가 콘텐츠를 클라이언트에 보냅니다.