본문 바로가기

Server/WS & WAS

웹 서버와 WAS

웹 서버(Web Server)

웸 브라우저를 통해 전달 받은 클라이언트(사용자)의 요청을 받아 처리하고 사용자에게 요청 결과 페이지를 보여줍니다. 

주로 html 문서와 같은 정적인 컨텐츠를 처리합니다.

WAS(Web Application Server)

클라이언트의 요청에 필요한 페이지의 로직이나 데이터베이스와의 연동 등을 처리할 수 있는 비즈니스 로직으로 

구현되어 있습니다. 실질적으로 WAS가 데이터쪽에 접근합니다. 주로 JSP, PHP, ASP 와 같은 언어로 동적 컨텐츠를 처리합니다.

웹 서버와 WAS의 처리 흐름

보통 트래픽이 많은 사이트에서는 여러 대의 서버로 운영이 되는 경우가 많습니다. 

흔히 말하는 로드 밸런싱을 위한 것이죠. (로드 밸런싱이란 여러 대의 서버로 분산 처리해 서버의 부하는 막는것을 말합니다.)

그 중 가장 흔하게 접할 수 있는 경우가 웹 서버와 WAS를 연동 해놓는 케이스 입니다.

여기서는 가장 많이 사용하는 Apache 와 Apache Tomcat을 기준으로 설명 해드리겠습니다.


(1) 사용자는 브라우저를 통해 웹 서버에게 http://dh-0419.tistory.com/ 를 보여달라고 요청합니다.


(2) 브라우저를 통해 웹 서버에게 요청이 들어오면 서블릿 컨테이너(Tomcat)는 배포서술자(web.xml)을 참조해 두 객체를 생성합니다.


HttpServletRequest : 클라이언트의 요청 정보
HttpServeltResponse : 클라이언트로 전달된 응답객체


(3) 두 객체를 생성한 컨테이너는 다음으로 서블릿을 호출합니다.


(4) 서블릿은 요청 방식에 따라 doGet/doPost 호출합니다. 만약 처음 호출이 되었다면 서블릿은 init() 를 먼저 호출합니다.


(5) doGet/doPost 메소드를 통해 생성된 결과물은 Response 객체에 담아져 서블릿 컨테이너에 전달됩니다.


(6) 서블릿 컨데이너는 이 결과물은 HTTPResponse 형태로 바껴져 웹 서버에 전달되고 일을 다 마친 컨테이너는 앞서 생성된

두 객체를 destroy() 를 호출하여 소멸시킵니다.

서블릿(Servlet)

서블릿이란 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술을 말합니다. 자바 클래스 형태의 웹 애플리케이션을 실행시키려면 javax.servlet.http 패키지에 httpservlet 클래스상속 받아 구현합니다.그리고 이것을 상속 받아 구현한 클래스가 서블릿 클래스 입니다.

'Server > WS & WAS' 카테고리의 다른 글

[Windows] WS & WAS 시작하기  (0) 2017.12.26