1. WebServer ?
- HTTP 프로토콜을 기반 클라이언트(웹브라우저)가 페이지 요청 시 웹 서버에서 요청을 받아
정적컨텐츠(.html, .css) 를 제공하는 서버
- WAS 를 거치지 않고 바로 자원을 제공하기도 함
- 클라이언트의 요청을 WAS에 전달하고 WAS가 처리한 결과를 전달받아 클라이언트에게 제공하는 기능
- Apache, Nginx, IIS(Window에서만 동작)
2. WAS (Web Application Server) ?
- 데이터베이스의 조회나 다양한 로직 처리가 필요한 동적인 컨텐츠 제공
- HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)
- JSP, Servlet 등 구동환경을 제공해주기에 웹 컨테이너 또는 서블릿 컨테이너로 불린다.
- Web Server + Web Container
- 웹서버의 기능을 구조적으로 분리하고 처리하고자 목적으로 제시
- 분산 트랜잭션, 보안, 쓰레드 처리 등 기능을 처리하는 분산환경에서 사용
- 주로 데이터베이스와 함께 수행 됨
- 프로그램 실행환경과 DB 접속기능 제공
- Tomcat, JBoss, Jeus
3. 구분이유
3.1 WebServer
- WebServer 를 통해 정적인 파일들을 WAS 까지 전달하지 않고 앞단에서 빠르게 제공할 수 있음
- WebServer에서 정적인 컨텐츠들만 처리하도록 기능을 분리하여 서버의 부하를 줄일 수 있음
- SSL/TLS에 대한 암복호화 처리에 웹서버 사용
- Load Balancing 을 위해 WebServer 사용
- 접근허용 IP관리, 서버에서의 세션 관리 등도 Web Server에서 처리하면 효율
3.2 WAS
- WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 결과를 만들어
제공함으로써 자원을 효율적으로 사용
- WAS는 기본적으로 동적 컨텐츠를 제공하기 위해 존재하는 서버
- 대용량 웹 애플리케이션의 경우 웹서버와 WAS 를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응
자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성 을 위해 Web Server와 WAS를 분리
참고 사이트
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
'개발지식' 카테고리의 다른 글
RDBMS 와 NoSQL의 차이 (0) | 2022.06.10 |
---|---|
PHP란 무엇인가 ? (0) | 2022.06.10 |
동기와 비동기 방식 / 블로킹과 논블로킹 (0) | 2022.05.30 |
프로세스와 스레드 (0) | 2022.05.26 |
TCP 와 UDP의 차이 (0) | 2022.05.25 |