🌍 웹 서버, 웹 애플리케이션 서버
- 웹 서버 ( Web Server)
- HTTP 기반으로 동작
- 정적 리소스 제공, 기타 부가기능
- 예) APACHE
- 웹 애플리케이션 서버 ( WAS = Web Application Server)
- 사용자에 따라 동적으로 웹 페이지를 다르게 보여줄수있다.
- 웹 서버기능 포함 + 정적 리소스 제공
- 특징
- 프로그램 코드를 실행해서 애플리케이션 로직 실행
- 동적 HTML,
- HTTP API (JSON) (Rest API) (많이 사용)
- 서블릿, JSP, 스프링 MVC
- 예) 톰캣(Tomcat)
- http 메시지에 모든것을 전송
- JSON, XML(API)등등
- 서버간에 데이터를 주고 받을 때도 대부분 http 사용
정리 ( 웹서버와 WAS 차이 )
- 웹 서버는 "정적 리소스 (파일)", WAS는 "애플리케이션 로직"
- 사실 둘의 용어도 경계도 모호하다.
- 웹 서버도 프로그램을 실행하는 기능을 포함하기도 한다.
- 웹 애플리케이션 서버도 웹 서버의 기능을 제공함
- 자바는 서블릿 컨테이너 기능을 제공하면 WAS
- ""WAS는 애플리케이션 코드를 실행하는데 더 특화되어있다.""
웹 시스템 구성 - WAS, DB
- WAS가 너무 많은 역할을 담당, 서버 과부하 우려
( HTML, CSS, JS, 이미지 등)
- 가장 비싼 애플리케이션 로직 (비즈니스 로직) 이 정적 리소스 때문에 수행이 어려울 수 있음
- WAS 장애시 오류 화면도 노출 불가능
📢 웹 시스템 구성 - WEB, WAS, DB
- 정적 리소스는 "웹 서버"가 처리
- 웹 서버는 애플리케이션 로직같은 "동적인 처리" 가 필요하면 WAS에 요청을 위임
- WAS는 중요한 애플리케이션 로직 처리 전담
- WAS,DB 장애시 WEB 서버가 오류 화면제공 가능 (웹 서버는 잘 죽지않음, WAS 서버는 잘 죽음)
추가로 효율적인 리소스 관리를 할수있음
1. 정적 리소스가 많이 사용될 것 같은 경우 ➡ WEB 서버 증설
2. 애플리케이션 로직 같은 리소스가 많이 사용될 것 같은 경우 ➡ WAS 서버 증설
❗❗ 한마디로 업무를 분담한다는 것