[CS] Web Server 와 WAS 란?
1. Web Server 란? (Stacic Pages)
- 웹 브라우저(클라이언트)로부터 HTTP 요청을 받아 정적 컨텐츠(HTML, 이미지, css 등)을 제공하는 프로그램
1-1) Web Server의 기능
- HTTP 프로토콜을 기반으로 하여 클라이언트의 요청을 서비스 하는 기능을 담당한다.
기능 1) 정적인 컨텐츠 제공, WAS을 거치지 않고 바로 자원을 제공한다.
기능 2) 동적인 컨텐츠 제공을 위한 요청 전달, 클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Response)한다.
.1-2) Web Server의 예
- Apache Server, Nginx, IIS(Windows 전용 Web 서버) 등
2. WAS(Web Application Server) 란? (Dynamic Pages)
- DB 조회나 다양한 로직 처리을 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 프로그램
- WAS = Web Server + Web Container
- Container란 JSP, Servlet을 실행시킬 수 있는 소프트웨어 입니다.
2-1) WAS의 기능
기능 1) 프로그램 실행 환경과 DB 접속 기능 제공
기능 2) 업무를 처리하는 비즈니스 로직 수행
기능 3) 여러 개의 트랜잭션(논리적인 작업 단위) 관리 기능
2-2 ) WAS의 예
- Tomcat, JBoss, Jeus, Web Sphere 등
<WAS 동작 그림>
3. Web Server 와 WAS 차이
- Web Server : Web Server에서는 정적 컨텐츠만 처리하도록 기능을 분배하여 서버의 부담을 줄일 수 있다.
- WAS : WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 만들어서 제공함으로써 자원을 효율적으로 사용할 수 있다.
4. Web Server 와 WAS를 구분해서 사용하는 이유
<Web Server 와 WAS 분리>
- 서로의 기능을 분리하여 서버 부하를 방지할 수 있다.
WAS는 DB 조회 등 페이지를 만들기 위한 다양한 로직을 처리하는데,
단순한 정적 컨텐츠까지도 WAS에서 처리한다면, 다른 작업에 사용하는 리소스로 지연이 발생할 수 있다
.
- 물리적으로 분리하여 보안을 강화할 수 있다.
SSL에 대한 암복호화 처리에 웹 서버를 사용한다.
웹서버를 앞단에 두어, 공격이 있을 때 중요한 정보가 담긴 WAS까지 전달 되지 못하게 한다. - 여러 대의 WAS를 연결이 가능하다.
- 대용량 웹 애플리케이션의 경우 Web Server 와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.
- 다른 종류의 WAS로 서비스가 가능하다.
<여러개의 WAS를 사용하는 그림>