웹 서버 (WS)

클라이언트 요청을 받아 HTML이나 오브젝트를 HTTP Protocol을 이용하여 전송하는 것

user가 Client로 request를 보내오면 그 명령에 대한 처리를 실행하고 다시 user에게 response를 보내주는 역할


하지만, 사용자가 요청한 것들 중에 웹 서버 자체적으로 처리 할 수 없는 것들을 WebLogic이나, Tomcat과 같은 웹 컨테이너나 php 모듈과 같이 처리 할 수 있는 곳으로 넘겨 처리 결과를 받은 후, 사용자에게 넘겨주는 역할도 수행


웹 서버만 구축된 서버는 웹페이지, 이미지 등 정적인 페이지를 생성 하지만, Jsp 컨테이너가 탑재되어 있는 웹 어플리케이션 서버는 jsp 페이지를 컴파일해 동적인 페이지를 생성한다.


따라서 웹 서버는 일반 웹 문서를, 웹 어플리케이션 서버는 jsp 페이지 등을 양분하여 서버 부담을 줄이는 역할을 한다


웹 컨테이너 (Web Container)

Jsp와 Servlet을 이용하는 웹 응용 프로그램은 자바 언어를 이용해서 작성 할 수 있는데 Jsp와 Servlet을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(web Container) 혹은 서블릿 컨테이너(Sevlet Container) 라고 한다.


Sevlet 컨테이너, Jsp 컨테이너, EJB 컨테이너 등의 종류가 있으며,

대표적인 웹 컨테이너(web Container)로는 웹로직(JSP 실행 가능), 자카르타 Tomcat, Resin 등이 있다.

웹 서버(ws)에서 jsp를 요청하면 웹로직에서는 jsp파일을 servlet으로 변환하여 컴파일을 수행하며, 서블릿의 수행 결과를 웹 서버에 전달하게 된다.


Servlet Container

서블릿을 동작시킬 수 있는 환경을 제공하는 서버 프로그램

즉, Http 요청을 받아 해당 서블릿을 동작시키고, 그 결과를 사용자 브라우저로 전달하는 역할

Http 파라미터 파싱, 결과 전달 컨트롤, Forwarding, Redirecting 기능 제공

개발한 서블릿을 컨테이너에 등록하면 컨테이너가 알아서 처리한다


Jsp Container / Engin

서블릿 컨테이너가 Jsp 컨테이너가 된다.

즉, Jsp는 서블릿으로 변환된 후 실행되는데 이 Jsp를 서블릿으로 컴파일 해주는 것이 Jsp 서블릿/엔진 이다.


웹 컨테이너는 웹 응용프로그램을 위해 보안, 병행성 관리, 라이프 사이클 관리 등의 서비스를 제공 한다.

1. 보안(Security)

사용자 인증과 제한된 사용자만 접근 할 수 있도록 지원

2. 병행성 관리(Concurrency management)

여러 개의 작업이 동시에 이루어지는 경우에 쓰레드를 통해서 작업이 보다 효과적으로 이루어지도록 지원

3. 라이프 사이클 관리(Life Cycle management)

웹 응용 프로그램이 생성되고, 실행되고, 삭제되는 라이프 사이클 전 과정을 지원


웹 어플리케이션 서버 (Web Application Server)

웹서버(ws) + 웹 컨테이너(Web Container)

웹상에서 사용하는 컴포넌트들을 올려놓고 사용하게 되는 서버

EJB(Enterprise JavaBeans) 와 같은 빈들이 올라가게 되며, 서버에 따라 웹에 필요한 많은 기능들을 포함하고 있다

+ Recent posts