Web server

: HTTP를 기반으로 동작하며 정적 리소스를 제공하는 서버이다.

- 예시: NGINX, Apache 등...

// 정적 리소스: img, html, css, js 파일과 같이 컴퓨터에 저장되어 있는 파일로 원본 그대로 응답하는 데이터이다.

 

 

WAS(Web Application Server)

: HTTP 기반으로 동작하며 웹 서버의 기능을 포함하고 추가적으로 코드를 실행해 Application 로직 수행 및 DB와의 상호작용으로 동적 컨텐츠를 생성하는 서버이다.

- 웹 서버에서 요청을 받고 웹 컨테이너로 이를 보내 로직을 수행한 후 결과를 웹 서버로 보낸다. 

//Container: Web Server가 보낸 JSP, PHP 등의 파일을 실행하고 수행결과를 Web Server로 보내주는 역할을 수행한다.

- 예시: Tomcat, Jetty, Undertow 등...

// 동적 리소스: 들어온 요청에 맞게 동적을 만들어진 컨텐츠이다.

 

 

Web System의 효율적인 구성

- WAS만 사용하지 않는 이유

1) WAS 과부하 발생 가능성 상승

2) Application 로직이 정적 리소스로 인해 수행되지 않을 가능성 존재

3) WAS 장애 발생 시 오류 페이지도 응답 불가

 

- 실제 Web System 구성

1) Web Server에서 정적 리소스 처리

2) Application 로직 필요한 요청은 Web Server가 WAS에 전달

=> 효율적 리소스 관리 가능: 정적 자원 과잉 시 Web Server를, Application 관련 자원 과잉 시 WAS를 Scale Out

=> 요류 화면 제공 가능: Web Server는 오류 발생 가능성이 낮고 WAS는 높으며 장애가 자주 발생

     - WAS는 DB에 문제 생겨도 문제 발생

'CS > Network' 카테고리의 다른 글

JWT 토큰이란?  (2) 2025.05.31
Servlet  (1) 2025.05.07
HTTP API 설계: RESTful API, Maturity Model  (0) 2025.05.06
HTTP  (1) 2025.05.06
프로토콜과 계층 구조(OSI 7계층 모델)  (0) 2025.05.05

+ Recent posts