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 |