본문 바로가기

스프링 MVC

웹 애플리케이션의 이해

https://literature-programming.tistory.com/18?category=948283 

 

웹서버와 WAS

일단 해당 내용을 들어가기 전에 웹, 웹서버에 대해 알고 넘어가야 한다. 웹은 인터넷 상에서 텍스트나 그림, 소리, 영상 등과 같은 멀티미디어 정보를 하이퍼텍스트 방식으로 연결해서 제공한

literature-programming.tistory.com

웹은 HTTP 기반이다.

즉, HTTP에 모든 정보를 담아서 전송한다.

 

그렇다면, 웹 서버란 무엇일까?

- HTTP 기반으로 동작

- 정적 콘텐츠 제공(http, css, 이미지, 영상 등)

- nginx, apache

 

웹 애플리케이션 서버란?

- HTTP 기반으로 동작

- 웹 서버 기능 포함(정적 콘텐츠 제공 가능)

- 프로그램 로직을 수행해서 동적 콘텐츠도 제공

- tomcat

 

둘의 차이?

웹 서버 웹 애플리케이션 서버(WAS)
정적 리소스 애플리케이션 로직

WAS 만으로 구성이 가능하지만, 대부분의 프로젝트에서 웹 서버와 WAS 를 구분해서 사용한다.

 

왜냐하면,

WAS가 너무 많은 역할을 담당할 경우 서버 과부하가 걸릴 수 있다.

가장 비용이 큰 애플리케이션 로직이 정적 콘텐츠 제공으로 인해 수행이 어려울 수 있다.

WAS 장애 시 오류 화면도 노출이 안되는 상황이 발생한다.

 

따라서, 정적 콘텐츠는 웹서버가, 동적 콘텐츠는 WAS가 수행한다.

웹서버는 중요한 애플리케이션 로직 수행 등의 임무를 WAS에 위임한다.

이를 통해 효율적인 리소스 관리가 가능하다.

ex) 정적 콘텐츠 요청 많으면 웹서버 증설, 동적 콘텐츠 요청 많으면 WAS 증설

 

또한, 당연히 정적 콘텐츠를 제공하는 웹서버는 잘 죽지 않는다.

따라서 WAS, DB 장애 발생 시 오류 화면(html)을 송신할 수 있다.

'스프링 MVC' 카테고리의 다른 글

서블릿  (0) 2022.09.06
HTML, HTTP API, CSR, SSR  (0) 2022.09.04
서블릿  (0) 2022.09.04