2011. 8. 2. 05:07

웹서버(WebServer), 웹컨테이너(WebContainer), 웹어플리테이션서버(WebApplicationServer), 웹서버와 웹어플리케이션 서버의 차이점

웹 서버(Web Server)

 - 클라이언트의 요청을 받아 HTML이나 오브젝트를 HTTP프로토콜을 이용해 전송하는것.

   =사용자가 클라이언트로 요청을 보내오면 그 명령에 대한 처리를 실행하고 다시 사용자에게 답변을 보내주는역활

 - 사용자가 요청한 것들중에 웹 서버 자체적으로 처리할 수 없는 것들을 

   톰캣과 같은 컨테이너나 PHP모듈과같이 처리할 수 있는 곳으로 넘겨 처리 결과를 받아와서 사용자에게 넘겨주는 역활도 수행.

 - 웹 서버만 구축된 서버는 웹페이지, 이미지 등 정적인 페이지를 생성하지만,

   JSP컨테이너가 탑재되어 있는 WAS는 JSP페이지를 검파일해 동적인 페이지를 생성함

 - 웹문서는 웹문서를, WAS는 JSP페이지 등을 양분하여 서버 부담을 줄임.

 - Apache, IIS(Internet Information Server), webtoB 등


컨테이너(Containner)

 - Jsp와 서블릿을 이용하는 웹 응용프로그램은 자바 언어를 이용해서 작성할 수 있는데,

    Jsp와 서블릿을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container)라고 한다. 

 - Servlet컨테이너, JSP 컨테이너, EJB컨테이너 등의 종류가 있으며,

   대표적인 웹 컨테이너로는 자카르타 톰캣(JSP), RESIN, 웹로직, 웹투비 등이 있음.

 - 웹서버에서 JSP를 요청하면 톰캣에서는 JSP 파일을 서블릿으로 변환하여 컴파일을 수행하고, 

   서블릿의 수행결과를 웹서버에 전달하게 된다. 


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

  - 인터넷 상에서 HTTP프로토콜을 통해 사용자 컴퓨터나 장치에 어플리케이션 미들웨어(소프트웨어 엔진)이다.

  - 웹 서버 + 웹컨테이너

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

  - EJB와 같은 빈들이 올라가게 되며, 서버에 따라 웹에 필요한 많은 기늘들을 포함하고 있다.

  - J2EE 스펙을 구현한 서버 ( Jsp/Servlet Container와 EJB Container 로서의 기능)

  - 가장많이 사용하는 WAS는 BEA사의 WEB LOGIC,IBM사의 Web Spere, T-max사의 JEUS, Tomcat, RedHot사의 JBoss  등등이 있다. 

  - Tomcat 은 jsp/servlet Container의 기능은 구현했으나 EJB Container로서의 기능은 없습니다.

     따라서 Tomcat은 Was가 아니라는 사람들도 있다. 


웹 서버와 웹어플리케이션 서버의 차이점 

 - 웹서버와 WAS를 구별 짓는 것은 동적 서버 콘텐츠를 수행하느냐? 수행하면 WAS로 보시면 됩니다.

 - 웹 서버: 정적인 HTML이나 jpeg, gif같은 이미지를 제공하는 서버, 정적 페이지 서비스가 전공

 - WAS: 동적인 처리를 담당하는 서버, 동적 페이지(jsp, asp)를 만들어내는 것이 전공

 

웹서버와 WAS의 일반적 구성

사용자가 브라우저에서 요청을 하게 되면(버튼 클릭) 다음과 같이 웹 서버와 WAS서버를 거쳐 응답이 돌아오게 됩니다.

사용자 요청(웹 브라우저) ㅡ> 웹서버 ㅡ> WAS(동적 처리) ㅡ> 웹서버 ㅡ> 사용자 응답 메시지(웹 브라우저)

※ 미들웨어 - 컴퓨터 분야에서 미들웨어는 각기 분리된 두 개의 프로그램 사이에서, 

    매개 역할을 하거나 연합시켜주는 프로그램을 지칭하는 용어로 마치 "접착제"와 같은 존재.