[WEB] 웹 서버 vs 웹 애플리케이션 서버

Cherry·2022년 3월 17일
0
post-thumbnail

웹 서버와 웹 애플리케이션 서버 둘다 굉장히 많이 들어본 용어인데 도대체 어떻게 다른지 명확히 잘 모르는 사람들이 많다. 그렇기에 이번에 위의 용어들을 확실히 정리하려고 한다.

💡 웹 서버와 웹 어플리케이션 서버 둘다 HTTP 기반이며 웹은 HTTP 기반이다.

우선 두 용어를 구별하기 위해 정적과 동적의 차이를 우선적으로 알아야 한다.

Static vs Dynamic

  • 정적인(Static)

만들어놓은 것 그대로 제공하는 것 자체를 정적이라 할 수 있다. 예를 들면, HTML 템플릿을 작성하고 홈페이지를 열어보면 이것 자체가 정적인 페이지가 되는 것이다. 정적인 웹사이트는 만들기 쉽기 때문에 처음에는 정적인 웹사이트를 만들면서 사이트 제작을 시작한다.

  • 동적인(Dynamic)

상호작용을 통한 데이터 처리가 필요한 경우 동적인 페이지라 한다. 예를 들어 서버가 사용자의 '요청(Request)'에 따라 데이터를 가공처리한 뒤에 응답으로 생성되어진 웹 페이지를 보여주는 것이다.

웹 서버

  • 정적리소스나 정적 파일(HTML, CSS, JS, 이미지, 동영상)들에 대한 요청에 응답해준다.
  • ex) NGINX, APACHE

웹 어플리케이션 서버(WAS - Web Application Server)

  • 웹 서버기능을 포함하며 그 이외에 프로그램 코드를 실행해서 애플리케이션 로직 수행
    • 동적 HTML, HTTP API(JSON), 서블릿, JSP, 스프링 MVC
  • ex) Tomchat, Jetty, Undertow

웹서버와 웹 어플리케이션 서버(WAS) 차이

: 결과적으로는 웹 서버는 정적 리소스 파일, 웹 어플리케이션 서버는 어플리케이션 로직이라고 보면 된다.

사실 둘 경계가 모호하고 용어도 모호하다고 한다.

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

웹 시스템 구성-WAS, WS, DB

:가장 효율적인 구성이다.

  • 정적 리소스는 웹 서버가 동적 처리가 필요하면 WAS에게 요청
  • WAS는 중요한 애플리케이션 로직을 담당
  • 정적 리소스가 많아지면 웹서버 증설 동적 리소스가 많아지면 WAS 증설
  • 웹서버는 잘 죽지 않으나 WAS는 잘 죽기 때문에 웹서버가 오류 페이지 제공 가능

0개의 댓글