Web Server
- 개념 : HTTP 프로토콜을 통해 클라이언트가 요청한 '정적 컨텐츠'를 제공하는 서버
- 기능
- 정적인 컨텐츠를 제공한다.
- 동적 컨텐츠 요청을 WAS에 전하고, WAS가 처리한 결과를 클라이언트에게 Response한다.
WAS (Web Application Server)
- 개념 : 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어
- WAS는 웹 서버와 웹 컨테이너가 합쳐진 형태로 '동적 컨텐츠'를 제공하며, 주로 데이터베이스 서버와 함께 수행된다.
- 기능
- 프로그램 실행 환경과 DB 접속 기능을 제공한다.
- 여러 개의 트랜잭션(논리적인 작업 단위)을 관리한다.
- 업무를 처리하는 비즈니스 로직을 수행한다.
- WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 웹 컨테이너 또는 서블릿 컨테이너라고 불린다.
- 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 결과를 만들어 제공하면서 자원을 효율적으로 사용할 수 있다.
- WAS가 필요한 이유 : 웹 서버로 클라이언트가 요청하는 결과를 모두 만들어놓고 제공하기엔 자원이 절대적으로 부족하기 때문이다.
웹 서버와 WAS를 함께 사용하는 이유
WAS도 정적 컨텐츠를 처리할 수 있지만 WAS가 해야 할 일의 부담을 줄이기 위해 웹 서버를 WAS 앞에 배치하여 동적 컨텐츠만 처리하도록 한다.
- 기능 분배
- 웹 서버는 정적 컨텐츠만 처리하고, 요청받은 동적 컨텐츠는 WAS에 맡기고 처리결과를 클라이언트에 전달한다.
- WAS는 전달받은 동적 컨텐츠만 처리함으로써 기능을 분배하고 서버 부하를 방지한다.
<웹 서비스 구조>
참조
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
https://codechasseur.tistory.com/25
https://victorydntmd.tistory.com/121
https://helloworld-88.tistory.com/71