HTTP 프로토콜을 기반으로 하여 클라이언트에게 정적인 파일을 제공하기 위한 서버로 가장 앞에서 요청에 대한 처리를 진행한다.
1) 정적인 컨텐츠 제공
2) 동적인 컨텐츠 제공을 위한 요청
ex) apache, nginx, gws....
DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위한 서버로 HTTP를 통해 애플리케이션을 수행해주는 미들웨어이다.
WAS = Web Server + Web Container
웹 서버 기능들을 구조적으로 분리하여 처리하고자 제시되었고 주로 DB서버와 같이 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산환경에서 사용된다.
1) 프로그램 실행 환경과 DB 접속 기능 제공
2) 여러 개의 트랜잭션 관리 기능
3) 업무를 처리하는 비즈니스 로직 수행
ex) tomcat. jeus, web logic...
if... 웹브라우저에 이미지 파일(정적인 컨텐츠)를 보낸다.
정적인 파일은 웹문서가 브라우저로 보내질때 함께 전송되지 않는다.
므라우저는 HTML문서를 먼저 받고 필요한 이미지 파일들을 다시 서버로 요청하면 그때 이미지 파일을 받아온다.
따라서 WS를 통해 정젹인 파일들은 Application Server까지 가지 않고 앞단에서 빠르게 보내진다.
정적 컨텐츠만 처리 가능하도록 기능을 분배하여 서버의 부담을 줄인다.
웹페이지는 정적, 동적 컨텐츠가 모두 존재한다.
사용자의 요청에 맞게 적절한 동적 컨텐츠를 만들어 제공해야하는데 WS만 이용하면 원하는 요청에 대한 결과값을 모두 만들어 놓아야한다.
즉, 자원이 부족해지는 문제가 발생한다.
따라서 WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 만들어서 제공함으로써 자원을 효율적으로 사용할 수 있다.
1) 기능 분리로 서버 부하 방지
2) 여러 대의 WAS 연결 가능
자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 Web Server와 WAS를 분리한다.
🎈 Web Server를 WAS 앞에 두고 필요한 WAS는 Web Server에 플러그인 형태로 설정하면 효과적
WS | WAS |
---|---|
정적 | 동적 |
정적 컨텐츠만 처리하여 서버의 부담을 줄임 | 로직에 맞게 자원을 생성, 효율적으로 사용 |
Apache | Tomcat |
📒참고
웹서버(WS)와 웹어플리케이션서버(WAS)의 차이
[Web] Web Server와 WAS의 차이와 웹 서비스 구조