웹서버 : 웹 브라우저로부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램
-> 클라이언트로부터 HTTP 요청을 받을 수 있음 -> 정적컨텐츠 요청 시 정적컨텐츠 제공 가능 -> 동적컨텐츠 요청 시 WAS로 전달하여 WAS가 처리한 결과를 클라이언트에 전달
정적 컨텐츠 : 어느 사용자 요청이든 항상 동일한 컨텐츠(HTML, 이미지 등)
동적 컨텐츠 : 요청 인자에 따라 바뀔 수 있는 컨텐츠
Web Application Server(WAS) : DB 조회나 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 프로그램
-> HTTP 요청을 받을 수 있음(대부분 WAS는 Web Server 내장)
-> 요청에 맞는 정적 컨텐츠를 제공할 수 있음
-> DB 조회나 다양한 로직 처리를 통해 동적 컨텐츠를 제공할 수 있음.
Web Server를 같이 사용했을 때 장점
1) 책임 분할을 통한 서버 부하 방지(정적 : 웹서버, 동적 : WAS)
2) 웹서버 : 로드밸런싱 기능을 가지고 있음 -> 앞단에 웹서버를 두고 뒷단에 WAS를 여러개 둬서 여러 WAS가 나누어 처리할 수 있음
3) 로드밸런싱 Health check
-> 헬스체크 : 서버에 주기적으로 HTTP 요청을 보내 서버의 상태를 확인(ex 특정 URL 요청에 200 응답이 오는지)
-> 웹 서버에서 WAS가 정상적으로 동작 하고 있는지 HTTP 요청을 보내서 서버의 상태 확인
-> interval : 헬스체크 요청 주기(default : 5초)
-> Fails : 몇회 연속 실패하면 서버가 비정상으로 인지(default : 1회)
-> Passes : 서버가 다시 복구되어 요청이 n번 연속 성공하면 서버가 정상으로 인지(default : 1회)
4) 보안 : 리버스 프록시를 통해 실제 서버를 외부에 노출하지 않을 수 있다.
-> WAS : DB 접근할 수도 있는데, 앞단에 웹서버를 두면 보안 강화
WAS만으로 서비스가 가능하지만 서비스 확장성, 안정성을 고려한다면 웹서버를 앞단에 두는것이 유리