SpringBoot,Django,Flask 같은 웹 애플리케이션 프레임워크는 기본적으로 WAS의 기능을 수행하도록 만들어졌지만 Web Server도 내장되어 있는 경우가 많다. 이렇기에
Web Server와 WAS의 정확한 차이를 몰랐는데 Web Server와 WAS의 차이점과 각각의 역할을 알아보자.
Web Server의 대표적인 서비스는 apache Http Server와 nginx가 있다.Web Server는 정적파일(HTML,Css,JavaScript,이미지)을 제공하는데에 특화되어있다.
Web Application Server의 대표적인 서비스는 Tomcat,Node.js,Django가 있다. WAS는 동적인 데이터를 처리하는 역할을한다. DB와 데이터를 주고 받거나 서비스의 데이터 조작이 필요한 경우에 특화되어있다. 그렇기에 java,Python같은 개발언어를 통해서 로직을 작성하고 만들어진다.

Web Server와 WAS를 분리하면 다음과 같은 방식으로 동작한다. 하지만 WAS도 Web Server의 기능을 제공한다.그럼 분리하는 이유는 무엇일까?
한 서버에서 모든기능을 다 수행하면 서버에 과부하가 올 수 있다. 그렇기에 기능적으로 분리를 시켜 서버를 안정화 시킨다.
트래픽이 한 곳으로 몰려드면 서버에 문제가 생길 수 있다. WAS를 여러대 두고 Web Server에서 로드밸런싱을 통해서 이를 해결할 수 있다.
Web Server는 Client와 바로 밀접해 있기 때문에 DB정보 같은 중요한 데이터들이 노출될 수 가 있다.