티스토리 뷰
WAS와 웹 서버(Web Server)의 차이
참고1: https://codechasseur.tistory.com/25
참고2: https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
참고3: https://victorydntmd.tistory.com/121
참고4: http://melonicedlatte.com/web/2019/06/23/210300.html
웹 서버는 뭐고 웹 어플리케이션 서버는 뭐지? 이름이 비슷한데 그냥 같은 걸 다르게 부르는 건가? 싶기도 하여 서칭해봤다.
내용
1. 웹 서버(Web Server)
정의: 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들여 HTML, CSS, JS와 같은 정적 웹 페이지를 반환하는 프로그램
주로 정적 페이지를 반환하는 역할을 하지만
동적 콘텐츠를 요청 받으면 해당 요청을 WAS에 넘겨주고 WAS에서 처리된 결과를 클라이언트에게 보내주는 역할도 수행한다.
예시: Apache, Nginx, ...
2. WAS(Web Application Server)
정의: 인터넷 상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나 장치의 어플리케이션을 수행해주는 미들웨어로서, 주로 동적 콘텐츠를 수행하여 웹 서버와 구분된다. 주로 데이터베이스 서버와 같이 수행된다. 웹 컨테이너라고도 불린다.
클라이언트가 동적 정보를 포함한 페이지를 서버에 요청하게 되면
웹 서버는 정적 페이지를 클라이언트에 반환하고 동적 정보 요청을 웹 컨테이너로 넘긴다.
웹 컨테이너는 JSP, Servlet 등을 구동하여 DB와 상호작용 후 요청을 처리한 다음 그 결과를 웹 서버에 넘기고, 웹 서버는 해당 결과를 클라이언트에게 전달한다.
예시: Tomcat, ...
3. 같이 사용하는 이유?
WAS만 사용하면 WAS에서 정적 페이지 처리와 동적 데이터 처리가 모두 일어나기 때문에 서버 부하가 심해진다.
또 동적 데이터 처리가 늦게 되면 페이지 노출이 늦어서 사용자 경험이 떨어질 수 있다.
따라서 웹 서버를 WAS 앞에 두어 정적 페이지 처리를 담당시키고 WAS는 동적 데이터 처리만 하는 것이 옳다.
4. 요즘 추세?
요즘엔 WAS 안에 웹 서버의 기능이 내장되어 있는 경우가 있다. Apache Tomcat이 대표적이다.
이때 아파치 톰캣은 Web Server + Web Container === WAS
라고 할 수 있을 것 같다.
'Programming > Computer Science' 카테고리의 다른 글
[HTTP] HTTP 메소드, GET, POST, PATCH, PUT, DELETE, 안전, 멱등 (0) | 2022.03.29 |
---|---|
[HTTP] HTTP 메세지, stateless, 비연결성 (0) | 2022.02.04 |
[HTTP] URI, 웹 브라우저 요청 흐름 (0) | 2022.02.01 |
[HTTP] 인터넷 통신, IP, TCP, UDP, PORT, DNS (0) | 2022.01.29 |
컴파일타임(compiletime)과 런타임(runtime) (0) | 2021.10.27 |