2019. 9. 24.

웹 서버와 구조의 이해

웹 애플리케이션 서버와 웹 프레임워크 구조의 이해

웹 애플리케이션 서버는 정적 페이지와 동적페이지 요청을 모두 처리할 수 있다. 정적 페이지는 html, javascript, css 처럼 미리 작성되어 있어 서버 측의 실행이 요구되지 않는 응답 페이지를 의미하며, 동적 페이지는 서버 측에서 무엇인가를 실행해 요청에 따라 생성되는 응답 페이지를 의미한다.

웹 서버는 사용자의 요청을 수신하면 로컬 저장소의 경로에서 해당 파일을 찾아 응답(Response)한다. 하지만 동적인 요청을 수신하게 되면 동적 요청을 처리할 수 있는 웹 애플리케이션을 호출하게 되는데 PHP는 라이브러리.so 형태로 ASP는 동적링크파일인 dll, JSP는 자바 클래스로 변환되어 class 형태로 기능을 구현해 서비스한다.

서블릿은 웹 서비스를 위한 인터페이스로 HTTP 요청을 처리할 수 있는 규격이다. 서블릿은 독자적으로 실행되지 않고 서블릿 컨테이너에 등록된 후 서블릿 컨테이너에 의해 생성 호출 소멸된다. JSP는 HTML 과 자바 코드를 혼용해 사용할 수 있도록 정의된 텍스트 파일로 JSP 파일이 실행되기 위해서는 먼저 서블릿 클래스로 변환 작업이 이뤄줘야 한다.

서블릿 컨테이너는 서블릿을 관리하며 네트워크 통신, 서블릿의 생명주기 관리, 스레드 기반의 병렬 처리를 수행하는 JVM이다. 서블릿 컨테이너는 웹 요청을 처리하기 때문에 웹 컨테이너라고 부르기도 한다.


위 그림은 애플리케이션 서버의 처리 구조를 도식화 한 것으로 사용자가 JSP 를 요청하면 서블릿 컨테이너는 먼저 JSP 를 서블릿 클래스로 변환해 서블릿 컨테이너에 로드한다. 서블릿 컨이너는 사용자의 요청을 HttpServletRequest 객체로 생성하고 응답을 위해 HttpServletRequest 객체를 생성해 요청을 처리할 서블릿에 전달한다. 서블릿 클래스는 처리 결과를 HttpServlet Response 객체의 출력 스트림을 통해 반환한다.

Popular Posts

Recent Posts

Powered by Blogger.