1. Web Server
- HTTP 기반으로 동작한다.
- 웹 브라우저(클라이언트)로부터 파일 경로를 HTTP 요청으로 받는다.
- 경로상의 리소스가 정적HTML, 이미지, 영상 등 정적 리소스면 클라이언트에게 HTTP 응답으로 이를 제공한다.
- 만약 클라이언트가 동적 컨텐츠를 요청하면 WAS로 그 요청을 위임할 수 있다.
- 종류: Nginx, Apache Server, IIS 등

2. WAS(Web Application Server)
- HTTP 기반으로 동작한다.
- 대부분의 WAS는 Web Server를 내장하고 있다.
- 추가적으로 WAS는 동적 리소스를 처리한다.
- 웹 브라우저나 웹 서버로부터 HTTP 요청을 받는다.
- DB 조회, 애플리케이션 로직 처리를 통해 동적 리소스를 클라이언트(웹 브라우저, Web Server)에게 HTTP 응답으로 제공한다.
- 흔히 Application Server(App Server)라고도 부른다.
- 종류: Apache Tomcat, Jetty, JBoss 등

3. Web Server와 WAS의 차이점
1) 프로토콜
- Web Server와 WAS는 기본적으로 HTTP를 사용한다.
- 파일이나 이메일 전송이 필요한 서버는 FTP나 SMTP를 사용하기도 한다.
- 추가적으로 WAS는 다른 소프트웨어와의 통신을 위해 별도의 프로토콜(RMI, RPC 등)을 사용할 수도 있다.
2) 콘텐츠 유형
- Web Server는 요청이 오면 정적 컨텐츠를 곧바로 클라이언트에게 제공하거나 동적 컨텐츠 제공을 위해 WAS로 요청을 전달한다.
- WAS는 요청이 오면 정적 컨텐츠나 동적 컨텐츠를 클라이언트에게 제공한다 (주로 동적 컨텐츠).
3) 멀티스레딩
- 대부분의 Web Server는 멀티스레딩을 지원하지 않고, WAS는 지원한다.
- 즉 WAS는 여러 클라이언트의 요청을 병렬적으로 처리해 효율성이 높다.
4. 웹 시스템 구성

- 보통 웹 시스템 구조를 설계할 때 WAS 앞에 별도의 Web Server를 두는 경우가 많다.
- 이렇게 하는 가장 대표적인 이유는 서버의 부하를 분산시키기 위함이다.
- 정적 리소스만을 요청하는 경우 Web Server가 전부 처리하고, 동적 리소스를 요청하고 중요한 애플리케이션 로직을 처리할 때만 WAS가 사용되도록 한다.
- 이렇게 웹 시스템을 구성하면 WAS나 DB 서버에 장애가 발생했을 때, Web Server를 사용해 사용자에게 오류 화면을 제공하기에도 용이하다.
- 어느 종류의 리소스가 더 많이 사용되는지에 따라 개별적으로 서버를 증설할 수 있다. 정적 리소스가 많이 사용되면 Web Server를 증설하고, 애플리케이션 리소스가 많이 사용되면 WAS를 증설하는 식이다. 즉 효율적으로 리소스를 관리할 수 있다.
참고자료