Web Server
웹 브라우저(사용자,클라이언트)로 부터 HTTP요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 서버
☞ HTTP 프로토콜로 송수신 하는 서버 (HTTP 프로토콜을 이용해 클라이언트에게 웹 페이지를 제공)
☞ 주요 소프트웨어 : Apache, Nginx, ...
- 정적 컨텐츠
요청 인자 값에 상관없이 달라지지 않는 컨텐츠 - html, css, image,...
어떤 사용자 요청이든 항상 동일한 컨텐츠

** Web Server의 기능
- 클라이언트로부터 HTTP 요청을 받을 수 있다
- 정적 컨텐츠 요청 시 → 정적 컨텐츠를 제공할 수 있다
- 동적 컨텐츠 요청 시 → WAS(Web Application Server)로 전달하여 WAS가 처리한 결과를 클라이언트에게 전달
WAS ( (Web Application Server)
DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠(웹 애플리케이션)를 처리하고 제공하는 서버
☞ 웹 애플리케이션 실행 및 데이터 처리, 웹 서버와 클라이언트 간의 중계 역할
☞ 주요 소프트웨어 : Tomcat, JBoss, WebLogic, ...
- 동적 컨텐츠
요청 인자에 따라 바뀔 수 있는 컨텐츠

** WAS의 기능
- 클라이언트로부터 HTTP 요청을 받을 수 있다(대부분의 WAS는 Web Server 내장)
- 요청에 맞는 정적 컨텐츠를 제공할 수 있다
- DB 조회나 다양한 로직 처리를 통해 동적 컨텐츠를 제공할 수 있다
실제 웹 서비스 환경에서는 Web Server와 WAS가 함께 사용되는 경우가 많다고 한다
☞ 책임 분할을 통한 서버 부하 방지 → 정적 컨텐츠 Web Server, 동적 컨텐츠 → WAS
☞ 여러 대의 WAS 로드밸런싱 → WAS가 처리해야 하는 요청을 여러 WAS가 나누어서 처리할 수 있도록 설정
*** 로드밸런싱 : 여 러 서버나 컴퓨터 자원에 작업을 고르게 분산하는 기술

☞ 여러 대의 WAS Health check
*** Health check(상태검사) : 서버에 주기적으로 HTTP 요청을 보내 서버의 상태를 확인
( → 특정 서버의 서비스에 작업을 성공적으로 수행할 수 있는지 여부를 물어보는 방식)
- Interval : Health check를 통해 서버 상태를 확인하는 요청을 날리는 주기(default 5초)
- Fails : 서버가 비정상인지 인지 (default 1회)
- Passes : 서버가 다시 복구되어 정상으로 인지 (default 1회)
☞ 보안 : 리버스 프록시를 통해 실제 서버를 외부에 노출하지 않을 수 있다

*** 리버스 프록시 : 클라이언트와 웹서버 간의 중개자 역할을 하는 서버로, 클라이언트로부터의 요청을 대신 받아 웹 서버에 전달하고, 웹 서버의 응답을 클라이언트에서 전달하는 역할을 한다.