Web Server
웹 서버는 HTTP 기반으로 동작하며 정적 리소스(HTML, CSS, JS, 이미지 등)를 제공한다.
Web Server 구조
클라이언트의 HTTP 요청에 대해서 서버에 있는 정적 리소스를 HTTP 응답한다.
대표적인 Web Server
대표적인 웹 서버로 Nginx와 Apache가 있다.
WAS(Web Application Server)
WAS는 HTTP 기반으로 동작하며 웹 서버의 기능을 포함한다.
추가적으로 코드를 실행해서 Application 로직을 수행하고 DB와 상호작용하여 동적 컨텐츠를 생성한다.
WAS의 구조
WAS도 정적 리소스를 포함할 수 있다.
대표적인 Web Application Server
Tomcat, 스프링 부트에 내장되어 있다.
Web Server와 WAS(Web Application Server)의 차이점
실제로 Web Server도 Application 로직을 포함할 수 있다.
WAS는 Application 코드를 실행하는 것에 더욱 특화되어 있다.
Java에서는 Servlet Container 기능을 제공하면 WAS이다.
Web System 구성
Web Server, WAS를 활용하여 Web System을 효율적으로 구성하는 방법을 알아본다.
WAS만 사용하는 경우
WAS도 정적 컨텐츠를 제공할 수 있지만 너무 많은 역할을 담당한다.
- WAS는 애플리케이션 로직을 실행하는 것에 특화돼있다.
- 서버 과부화 발생 가능성이 높아진다.
실행에 가장 중요한 Application 로직이 정적 리소스로 인해 수행되지 않을 수 있다.
WAS에 장애가 생기면 아무런 화면도 보여주지 못한다. 오류 페이지 조차 클라이언트에게 응답할 수 없다.
실제 웹 시스템 구성
- 실제 웹 시스템 구성
- 정적 리소스는 Web Server에서 처리한다.
- Web Server는 Application 로직이 필요한 요청만을 WAS에 전달한다
실제 웹 시스템 구성의 장점
- 효율적으로 리소스를 관리할 수 있다.
- 정적 자원이 많이 사용된다면 Web Server를 Scale Out 한다
- Applicaiton 관련 자원이 많이 사용된다면 WAS를 Scale Out 한다.
- 오류 화면을 제공할 수 있다.
- Web Server는 오류가 발생할 확률이 아주 낮다.
- WAS는 오류가 발생할 확률이 높고, 장애가 자주 발생한다.
- WAS는 DB와 상호작용하기 때문에 DB에 문제가 생겨도 문제가 발생한다.
'Web' 카테고리의 다른 글
WAS의 Thread와 MultiThread 이해 (0) | 2024.11.26 |
---|---|
Servlet (1) | 2024.11.26 |
Restful API (1) | 2024.11.26 |
HTTP의 이해 (1) | 2024.11.26 |