웹 서버: 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 서버
예) Nginx, Apache
WAS: 다양한 서버 내 알고리즘, 비즈니스 로직, DB 조회 등 클라이언트 요청에 따라 동적인 컨텐츠를 제공하는 서버
예) Tomcat, Jetty, Undertow
웹서버는 정적리소스를 제공하고 웹 애플리케이션 서버는 웹 서버 기능은 물론 애플리케이션 로직까지 실행할 수 있다는 점이 다르다.
사실 둘의 용어도 경계도 모호하다. 왜냐하면 웹서버도 웹 애플리케이션 기능을 포함하는 경우가 있고 웹 애플리케이션은 웹 서버의 기능을 포함하기 때문이다.
그래서 WAS는 애플리케이션 코드를 실행하는데 특화되있다고 이해하는게 맞을것이다.
웹 시스템은 WAS와 DB만으로 구성할 수 있다.
하지만 다음과 같은 문제가 일어날 수 있다.
정적 리소스는 웹 서버가 처리하고 애플리케이션 로직같은 동적인 수행이 필요할때 WAS에 요청을 위임한다.
WAS는 애플리케이션 로직 처리를 주로 전담함으로 WAS, DB만 사용한 시스템의 단점을 보완한다.
리소스 관리도 효율적으로 변화 하는데, 정적 리소스가 많이 필요하면 웹 서버를 증설하고 애플리케이션 리소스가 많이 필요하면 WAS를 증설하면 되므로 두개의 리소스를 효율적으로 관리할 수 있다.