Web Server는 클라이언트(웹 브라우저)로부터 HTTP 요청을 받아 HTML, CSS, JavaScript, 이미지, 동영상 등의 정적 콘텐츠를 제공하는 역할을 한다.
ex) Apache HTTP Server, Nginx
이때 JavaScript는 동적인 기능을 가지고 있지 않나? 하는 의문이 들 수 있다. 하지만 JavaScript 자체는 웹 서버 입장에서는 정적 콘텐츠이다.

즉, JavaScript 자체가 동적인 기능을 제공한다고 해서 웹 서버가 동적 처리를 수행하는 것은 아니다.
WAS는 Web Server와 다르게 동적 콘텐츠를 처리하는 서버로, 웹 애플리케이션을 실행하고 비즈니스 로직을 수행한다. DB와 연동하여 사용자 요청에 따라 실시간으로 데이터를 생성하고, 복잡한 작업을 수행한다. 그렇기에 보다 더 많은 자원을 소모한다.
ex) Apache Tomcat, Jetty
spring-boot-starter-web 의존성을 추가해주기만 하면 내장 Tomcat을 사용할 수 있기에 간편한 배포가 가능하다.
일반적으로 Web Server와 WAS는 함께 사용된다.
1. Web Server가 클라이언트 요청을 수신.
2. 정적 콘텐츠는 직접 반환.
3. 동적 콘텐츠 요청은 WAS로 전달하여 처리.
4. WAS가 결과를 Web Server로 반환하면 클라이언트에게 전달
위의 구조로 서버 부하를 방지하고 효율적인 웹 서비스를 제공할 수 있다.
<참고 자료>
https://www.solarwinds.com/resources/it-glossary/web-server
https://aws.amazon.com/ko/compare/the-difference-between-web-server-and-application-server/
https://story.pxd.co.kr/1647