웹 서버와 웹 애플리케이션 서버의 차이는 무엇인가요?
웹 서버란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다.
정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다.
WAS란 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application Server이다.
HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 데이터베이스 서버와 같이 수행된다.
WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 서블릿 컨테이너 혹은 웹 컨테이너로 불린다.

WAS는 웹 서버와 웹 컨테이너의 역할을 모두 할 수 있다.
여기서 컨테이너는 JSP, Servlet을 실행시킬 수 있는 소프트웨어를 말한다.
현재 WAS의 웹 서버도 정적인 컨텐츠를 처리하는 데 성능상 큰 차이가 없다.
꼬리 질문
WAS만 사용하고 웹 서버를 굳이 안 써도 되지 않나요?
1. 서버 부하 방지
WAS와 웹 서버는 분리하여 서버의 부하를 방지해야 한다.
WAS는 DB 조회나 다양한 로직을 처리하고, 단순한 정적 컨텐츠는 웹 서버에서 처리해줘야 한다.
정적 컨텐츠까지 WAS가 처리한다면 부하가 커지게 되고, 수행 속도도 느려질 것이다.
2. 보안 강화
SSL에 대한 암호화, 복호화 처리에 웹 서버를 사용할 수 있다.
3. 여러 대의 WAS 연결 가능
로드 밸런싱을 위해서 웹 서버를 사용할 수 있다.
여러 개의 서버를 사용하는 대용량 웹 애플리케이션의 경우 웹 서버와 WAS를 분리하여 무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.
4. 여러 웹 애플리케이션 서비스 가능
하나의 서버에서 PHP, Java 애플리케이션을 함께 사용할 수 있다.
이러한 이유들로 웹 서버를 WAS 앞에 두고 필요한 WAS 들을 웹 서버에 플러그인 형태로 설정하면 더욱 효율적인 분산 처리가 가능하다.
참고
Last updated