Intro
- 웹은 HTTP 기반
- 클라이언트 <-> 서버 시 HTTP를 기반으로 동작
- HTTP 메시지에 모든 것을 전송 (HTML, IMAGE, API 등등)
웹 서버(Web Server)
- HTTP 기반으로 동작
- 정적 리소스 제공
- 정적(파일) HTML, CSS, JS, 이미지, 영상 등
ex) NGINX, APACHE
// 서버 응답 시 index.html 파일 serving
웹 애플리케이션 서버(WAS)
- HTTP 기반으로 동작
- 웹 서버 기능 + 알파
- 사용자에 따라서 다른 화면 가느
- 프로그램 코드를 실행해서 애플리케이션 로직 수행
- 동적 HTML, HTTP API
- 서블릿, JSP, 스프링 MVC
ex) Tomcat Jetty, Undertow
차이
- 웹 서버는 정적 리소스
- WAS는 애플리케이션 로직도
// 사실 경계는 모호
웹 시스템 구성 - WAS, DB
- WAS가 너무 많은 역할을 담당한다
- 가장 비싼 애플리케이션 로직이 정적 리소스 때문에 수행이 어려울 수 있음
- WAS 장애 시 오류 화면도 노출 불가능
웹 시스템 구성 - WEB, WAS, DB
- 정적 리소스를 앞에 둔다. 이건 웹 서버가 처리
- WAS는 애플리케이션 로직에 집중할 수 있다.
- 효율적인 리소스 관리가 가능
- 웹 서버는 정적 리소스만 제공하기에 잘 죽지 않음
- WAS 서버는 잘 죽음. 이때 WEB 서버가 오류 화면 제공 가능
References
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
인프런 - 김영한님의 [스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술] 수강하며 필기한 내용입니다.