이번에 nginx를 이용해서 Home Server에도 Web Server를 구축하는 경험을 했는데 하면서 Web Server와 WAS(Web Application Server)의 차이에 대해서 공부한 자료를 블로그에 다시 정리해서 업로드해보려 한다.
Web Server 란 HTTP 프로토콜 통신체계를 기반으로한 서버로 클라이언트의 웹 브라우저로부터 요청을 받아 정적인 컨텐츠를 제공하는 서버이다.
정적인 컨텐츠란 단순한 HTML 파일부터 CSS, Image 등 특정 프로그래밍 로직을 거치지 않고 바로 응답 가능한 컨텐츠를 말한다.
만약 정적인 컨텐츠가 아닌 동적인 컨텐츠를 요청 받았을 때 WAS가 구성되있는 환경이라면 해당 요청을 WAS에게 넘겨주고 WAS에서 처리한 결과를 다시 클라이언트에게 반환해주는 역할도 한다.
웹 서버의 예로는 Apache HTTP Server
와 Nginx
등이 있다.
WAS란 Web Application Server의 줄임말로 프로그래밍된 로직을 처리하거나 DataBase를 조회하는 등 다양한 로직을 동적으로 처리를 요구하는 동적컨텐츠를 제공하기 위해 만들어진 Application 서버이다. Web Server와 마찬가지로 HTTP 프로토콜 통신을 기반으로 요청을 받아 로직을 수행하며, 주로 데이터베이스 서버와 같이 수행된다.
WAS랑 웹프레임워크(Java의 Springboot, Python의 Django 등) 이랑 햇갈릴 수 있는데 전혀 다른 개념이다.
WAS는 Web Application을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달하는 미들웨어이다.
WAS의 예로는 Tomcat, Jeus, Web Logic 등이 있다.
역시 글로 보면 이해하기가 진짜 힘든것 같다.
간단하게 그림을 그려봤는데, 보면서 이해하면 조금 더 도움이 될 것 같다.
요약해서 두가지를 분리한 가장 큰 이유는 다음과 같다.
위처럼 여러 WAS를 하나의 Web Server에 연결함으로써 여러 종류의 Application을 구동하는 것도 가능하다.
여기까지....