[HTTP] 웹 서버(Web Server) & 웹 애플리케이션 서버(WAS)
웹 서버 (Web Server)
- 웹 브라우저(클라이언트)로 부터 HTTP요청을 받아 HTML문서와 같은 정적 컨텐츠를 제공하는 프로그램
ex) Apache, Nginx, IIS 등
# 웹 서버의 기능
- 정적인 컨텐츠 요청시
→ WAS를 거치지 않고 바로 자원 제공
- 동적인 컨텐츠 요청시
→ 클라이언트 요청을 WAS로 보내고, WAS가 처리한 결과를 클라이언트에게 전달
웹 애플리케이션 서버 (WAS, Web Application Server) ★
- DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
- HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)
- 웹 컨테이너(Web Container) 혹은 서블릿 컨테이너(Servlet Container) 라고도 불림
- WAS = Web Server + Web Container
ex) tomcat, JBoss, Jeus, Web Sphere 등
# WAS의 기능
- 클라이언트로부터 HTTP 요청을 받을 수 있다.
- 요청에 맞는 동적, 정적 컨텐츠를 제공할 수 있다.
- 웹 서버 기능들을 구조적으로 분리하여 처리하고자 하는 목적
→ 분산 트랜젝션, 보안, 메시징, 쓰레드 처리등의 기능을 처리하는 분산 환경에서 사용
→ 주로 DB 서버와 같이 수행
# 여러 웹 서비스 아키텍처
- Client → Web Server → DB
- Client → WAS → DB
- Client → Web Server → WAS → DB
- Client → Web Server → 여러개의 WAS → DB