HeadCopter

웹 서버, 웹 애플리케이션 서버 ? 본문

개발관련

웹 서버, 웹 애플리케이션 서버 ?

JungMonkey 2022. 7. 11. 21:32

웹 서버(Web Server)
-HTTP 기반으로 동자
- 정적 리소스 제공 
  * 정적 리소스란 ? 특정 폴더 디렉토리에 이미지 영상 파일등을 두면 서빙해준다.
 대표적으로 NGINX, APACHE가 있다.

 웹 애플리케이션 서버 (WAS-Web Application Server)
 - HTTP 기반으로 동작
 - 웹 서버 기능 포함 + (정적 리소스 제공 가능)
 - 프로그램 코드를 실행해서 애플리케이션 로직 수행
  - 동적 HTML, HTTP API(JSON)
  - 서블릿, JSP, 스프링 MVC
 ex) 톰캣(Tomcat) Jetty, Undertow

 웹서버는 정적이기 떄문에 특정 사용자마다 다른것을 보여줄수가 없지만
WAS는 프로그램 코드를 실행해서 작동하기 떄문에 사용자에 요청에 따라 동적으로 요청 수행이 가능하다 

둘의 차이 ? 

웹 서버는 정적 리소스, WAS 는 애플리케이션 로직을 수행

자바 서블릿 컨테이너 기능을 제공하면 WAS
WAS는 애플리 케이션 코드를 실행하는데 더 특화 되었다.

초기 웹 시스템 구성 - WAS, DB (최소한으로 하면 2개로 구성할 수 있다)

클라이언트 요청 -> WAS(애플리케이션 로직, HTML,CSS,JS,이미지 등 여러가지를 수행) -> DB

*이렇게 하면 WAS가 너무 많은 역할을 담당. 서버 과부하 우려
*게다가 WAS 장애시 오류 화면 조차도 처리불가능

웹 시스템 구성 - WEB, WAS, DB
- 정적 리소스는 웹 서버가 처리
- 웹 서버는 애플리케이션 로직같은 동적인 처리가 필요하면 WAS에 요청을 위임 !
- WAS는 중요한 애플리케이션 로직 처리 전담

클라이언트 요청 -> WebServer(HTML,CSS,JS,이미지) -> WAS(애플리케이션 로직) -> DB

각자의 장점을 가지고 요청에 대한 처리를 수행하게 된다.
이렇게 구성을 하면 정적 리소스만 제공하는 WebServer는 잘 죽지 않는다. (WAS 서버 장애 시 WebServer에서 오류화면HTML을 띄워 오류 화면 처리 가능)
데이터만 주고받을 때는 WAS만 구축해도 된다. 

'개발관련' 카테고리의 다른 글

본격! HTTP(2)  (0) 2022.07.14
본격 ! HTTP(1)  (0) 2022.07.13
클라이언트 서버 구조  (0) 2022.07.13
URI, URL, URN 정리와 웹 브라우저 요청 흐름 !  (0) 2022.07.12
인터넷 네트워크 관련 정리  (0) 2022.07.12