web 서버와 web application 서버의 차이
Web 서버는 '정적인 컨텐츠'를 제공하는 서버이다. 단순 html, css, javascript, 이미지, 파일 등등 즉시 응답 가능한 컨텐츠가 정적 컨텐츠라고 한다.
반면 WAS는 데이터베이스의 조회나 다양한 로직 처리가 필요한 '동적 컨텐츠'를 제공한다. 그래서 사용자의 입맛에 맞게 웹 서비스를 제공할 수 있음. WAS는 JSP, Servlet 구동환경을 제공하기 때문에 웹 컨테이너, 서블릿 컨테이너 라고도 불린다.
그럼 결국 WAS는 안에 Web 서버와 웹 컨테이너를 가지고 있으니 WAS만 쓰면 되는게 아닌가?? 결론은 '아니다'.
WAS는 DB 조회 및 다양한 로직을 처리하는데 집중해야한다. 따라서 정적 컨텐츠는 웹서버에 맡기고 기능을 분리시켜 서버의 부하를 방지하는 것이다.
WAS가 정적컨텐츠의 요청까지 처리하면 부하가 커지고 동적 컨텐츠의 처리속도가 느려질 수 있으며, 페이지 노출시간이 늘어나는 문제가 발생하여 '효율성이 크게 떨어진다'
요점은 효율이 떨어지니 정적 컨텐츠와 동적 컨텐츠를 전담하는 web과 WAS를 구분한 것이다.
- 결론
Web과 WAS의 차이는 어떤 컨텐츠를 제공하느냐의 차이다.
또한 대부분의 WAS는 정적인 컨텐츠를 제공하기 때문에 웹서버 없이 WAS만 존재할 수도 있다.
Web 서버를 보통 WAS 앞에 두는데, 이는 WAS의 부담을 줄이기 위해서이기도 하고, WAS의 환경설정 파일을 외부에 노출시키지 않도록 하고, 웹 서버와 WAS에 접근하는 포트가 다르기 때문에 WAS에 들어오는 포트에는 방화벽을 쳐서 보안을 강화할 수도 있다.