웹 서버
- HTTP를 기반으로 동작하는 서버
- 정적 리소스(HTML, CSS, JS)를 제공하고, 기타 부가기능을 제공한다.
- 클라이언트 (HTTP 요청) → 웹 서버 (HTTP 응답)
- ex_) NGINX, APACHE
웹 애플리케이션 서버 (WAS)
- HTTP를 기반으로 동작하는 서버
- 웹 서버 기능을 포함하며 프로그램 코드를 실행하여 애플리케이션 로직을 수행한다.
- 클라이언트 (HTTP 요청) → WAS (HTTP 응답)
- 동적 HTML, HTTP API(JSON), Servlet, JSP, SpringMVC
- ex_) Tomcat, Jetty, Undertow
차이점
- 웹 서버는 정적 리소스, WAS는 애플리케이션 로직을 실행하는 서버이다.
- 사실은 둘의 용어도 경계도 모호하기에 굳이 나누자면
WAS는 애플리케이션 코드를 실행하는데 더 특화되어 있다고 생각하면 된다.
웹 시스템 구성
- 웹 시스템은 WAS, DB 만으로도 구성이 가능하다.
- WAS는 정적 리소스, 애플리케이션 로직 모두 제공이 가능하기 때문.
- 하지만 WAS에 모든 부담을 몰아주게되면 과부하 될 우려가 생긴다.
- 만약에 장애가 생긴다면 오류화면도 나타낼 수 없게 된다.
⇒ 이를 해결하기 위해서는 적절한 분리가 필요하다.