WEB 웹서버와 웹애플리케이션서버
웹 서버와 웹 애플리케이션 서버
웹 서버
- HTTP 기반으로 동작
- 정적 리소스(HTML,CSS,JS,이미지,영상) 제공, 기타 부가기능
- ex) NGINX, APACHE
웹 애플리케이션 서버
- HTTP 기반으로 동작
- 웹 서버기능 포함 + (정적 리소스 제공 기능)
- 프로그램 코드를 실행해서 애플리케이션 로직 수행
- 동적 HTML, HTTP API (JSON)
- 서블릿, JSP, 스프링 MVC
- ex) tomcat, Jetty, Undertow
차이점
- 사실 둘의 경계도 모호하다.
- 웹 서버도 프로그램을 실행하는 기능을 포함하기도 한다
- 웹 애플리케이션 서버도 웹 서버의 기능을 제공한다
- 자바는 서블릿 컨테이너 기능을 제공하면 WAS
- 서블릿 없이 자바코드를 실행하는 서버 프레임워크도 있다
- WAS는 애플리케이션 코드를 실행하는데 더 특화되어있다.
- WAS와 DB만으로도 시스템 구성이 가능하다.
- 하지만 그렇게 하면 WAS가 너무 많은 역할을 담당해 서버 과부하 우려가 있다.
- 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있다.
- WAS장애시 오류 화면도 노출이 불가능하다.
- 그래서 일반적으로 WEB서버-WAS-DB로 구성한다.
- 정적 리소스만 제공하는 웹 서버는 잘 죽지 않음
- 애플리케이션 로직이 동작하는 WAS서버는 잘 죽음
- WAS, DB장애시 WEB서버가 오류화면 제공이 가능해진다.