웹 서버와 WAS의 차이

웹 서버(Web Server)
- 개념에 있어서 하드웨어와 소프트웨어로 구분
- 하드웨어 : Web Server가 설치되어 있는 컴퓨터
- 소프트웨어 : 웹 브라우저 클라이언트로부터 HTTP 요청을 받고, 정적인 컨텐츠(html, css 등)를 제공하는 컴퓨터 프로그램
웹 서버(Web Server)의 기능
- HTTP 프로토콜을 기반으로, 클라이언트의 요청을 서비스하는 기능을 담당
- 요청에 맞게 두 가지 기능 중 선택해서 제공
- 바뀌지 않는 정적(static) 컨텐츠(HTML, CSS, JS, 이미지, 영상) 제공
- 인자에 따라 바뀌는 동적(dynamic) 컨텐츠 제공을 위한 요청 전달
- 클라이언트 요청을 WAS에 보내고, WAS에서 처리한 결과를 클라이언트에 전달
- 웹 서버 종류 : Apache, Nginx, IIS 등
웹 애플리케이션 서버 WAS(Web Application Server)
- DB 조회 및 다양한 로직 처리 요구 시 동적(dynamic)인 컨텐츠를 제공하는 애플리케이션 서버
- HTTP 프로토콜 기반으로, 프로그램 코드를 실행해서 애플리케이션 로직을 수행
- HTTP 요청이 오면 사용자에 따라서 동적인 컨텐츠들을 보여줄 수 있다.
- 동적 HTML, HTTP API(JSON)
- 서블릿, JSP, 스프링 MVC
- WAS는 웹 컨테이너 혹은 서블릿 컨테이너라고 도 불린다.
- JSP, Servlet 구동환경을 제공하는 컨테이너
- JSP, Servlet을 HTML로 변환하여 클라이언트에 응답
- WAS = Web Server + Web Container
- 웹 서버의 기능들을 구조적으로 분리하여 처리하는 역할
- 보안, 스레드 처리, 분산 트랜잭션 등 분산 환경에서 사용됨 (주로 DB 서버와 함께 사용)
WAS(Web Application Server)의 기능