[web server ]                                      [Was] 
*정적데이타는 직접처리                      //    web container
클라이언트요청을 컨테이너로 전송--->  //     동적데이타 처리
클라이언트에 전달                            //     <-웹서버로 전달

 

웹 서버 (Web Server)

클라이언트의 요청을 받아 정적인페이지(웹페이지, 이미지)를 HTTP 프로토콜을 통해 전송한다. - 클라이언트의 요청 중 자체적으로 처리할 수 없는 정보에 대해서는 WAS에 처리를 요청한다. - 요청이 많을 경우 웹서버에서는 웹문서를 WAS에서는 JSP페이지를 양분하여 처리 함으로서 서버 의 부담을 줄여주는 역할도 한다.

ex) Apache, Nginx, IIS, WebtoB 등 

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

웹서버에서 처리할 수 없는 동적인 정보를 처리하여 웹서버에 정적인 정보를 제공한다. - 일반적으로 웹서버의 기능을 내제하고 있어 웹 서버 없이도 서비스가 가능하다.

ex) Tomcat, WebLogic, WebSphere, Jeus, JBoss 등 

 

[WAS 추가설명] 
DB조회나 비즈니스 로직처리를 위해 다양한 언어로 개발된 인터넷/인트라넷 환경의 소프트웨어
웹기반 3계층 컴퓨팅 환경에서 서버환경의 애플리케이션 서버와 같은 역할을 하며, 트랜잭션 처리 , 타기종간 연동 등을 주된 기능으로 함
Server 단에서 Application을 동작할 수 잇도록 지원함
기존 웹 서버와 달리 동적인 요구에 대응하기 위해 적합한 형태로 변화 
Web Client(브라우저)에게는 결과값만 전송함
Container(컨테이너)라는 용어로 쓰이며, 초창기는 CGI, 그 후에서는 Servlet, JSP, ASP 등의 프로그램으로 사용됨

 

- WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있습니다.

- 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없습니다.

- 규모가 커질수록 웹 서버와 WAS를 분리합니다.

- 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 대체로 분리합니다.

 

요즘 WAS도 계속 진화하면서 자체적으로 웹 서버 기능을 내장하고 있어서 이클립스에서 웹 서버 용도로 톰캣을 많이 사용하는 것이다. 단, 학부 수준의 웹 프로젝트는 과제 수준이지만 꽤 규모가 있는 프로젝트가 될수록 웹 서버와 웹 어플리케이션서버의 분리는 필수적이다.

 

웹 서버(ex. Apache) 는 static한 파일 (js, img, css) 등 변동이 없는 파일을 서비스하기 위해 사용되어 왔습니다다. 웹 어플리케이션 서버(이하 WAS, ex. Tomcat) 는 사용자의 요청 등에 따라 유동적인 서비스를 제공하기 위해 사용합니다. (예를 들자면, 키워드 검색을 하면 키워드에 근거하여 데이터를 DB에서 뽑아내고 화면에 해당 정보만 구성)

만약 WAS없이 웹 서버만으로 웹 서비스를 구축한다면 사용자의 요청에 대한 결과값을 미리 전부 static 파일로 만들어 놓아야하기 때문에 자원(인력, 시간 포함)이 절대적으로 부족합니다.

학교 과제나 개인 프로젝트를 개발할 때는 통상 WAS에서 웹서버 모듈을 포함하여 기능을 제공하기 때문에 웹서버를 별도로 개발 서버에 설치를 하지 않았을 것입니다.

 

'ServerSide' 카테고리의 다른 글

PermGen 영역 설정  (0) 2015.12.07

+ Recent posts