- WAS & Web Server를 알기전에 Static Page와 Dynamic Page의 개념에 대해 알아야한다
Static Page
- Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환하고, 항상 동일한 페이지를 반환한다
ex) image, html, css, javascript 파일과 같은 컴퓨터에 저정되어 있는 파일
Dynamic Pages
- 동적인 contents를 반환한다.
- Web Server에 의해서 실행되는 프로그램을 통해서 만들어진 결과물이다.
Web Server
개념
소프트웨어
- Web Browser 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .css 등)를 제공하는 프로그램
하드웨어
기능
- 클라이언트의 요청을 서비스 하는 기능이 있고 2가지 기능이 있다.
- 첫번째 기능
- 정적인 컨텐츠를 제공
- WAS를 거치지 않고 바로 resource를 제공한다
- 두번째 기능
- 동적인 컨텐츠를 제공
- 클라이언트 요청을 WAS에 보내고 WAS가 처리한 결과를 클라이언트에게 전달(응답)한다
Web Server 종류
Apache Server, Nginx, IIS..
WAS (Web Application Server)
- 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
- 웹 컨테이너 또는 서블릿 컨테이너 라고도 한다
- 컨테이너란 JSP, Servlet을 실행시킬 수 있는 소프트웨어를 말함
역할
- WAS = Web Server + Web Container
- Web Server의 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시됨
- 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.
- 주로 DB 서버와 같이 수행된다.
주요기능
- 프로그램 실행 환경과 DB 접속 기능 제공
- 여러 개의 트랜잭션(논리적인 작업 단위) 관리 가능
장점
- 기능을 분리하여 서버 부하 방지
- 보안강화
- SSL에 대한 암복호화 처리에 Web Server를 사용한다.
- 여러 대의 WAS 연결가능
- Loading Balancing을 위해 Web Server를 사용한다
- faill over, fail back 처리에 유리하다
- 여러 웹 어플리케이션 서비스 가능
- 하나의 서버에 PHP, JAVA 어플리케이션을 함께 사용할 수 있다
WAS 종류
Tomcat, JBoss, Jeus, Web Sphere ...
Web Server 필요성
WAS 필요성
- 앞서 보았듯이 웹 페이지에는 동적, 정적 컨텐츠가 존재한다. 그래서 Web Server는 클라이언트에 요청에 맞게 동적 컨텐츠를 만들어서 제공을 해야하는데 Web Server만 이용을 하기에는 서버에 부담을 줄 수 있어 적절치 못하다.
- 따라서
WAS
를 통해 클라이언트 요청에 맞는 데이터를 DB에서 가져와 제공을 하면 효율적으로 제공할 수 있다.
WAS 와 Web Server는 유지보수의 편의성, 자원이용의 효율성 때문에 분리되어 사용한다.
Web Server를 WAS 앞에 두는 형식으로 사용한다면 효율적인 분산 처리가 가능하다.
Web Server 구조
클라이언트 -> Web Server -> DB
클라이언트 -> WAS -> DB
클라이언트 -> Web Server -> WAS -> DB