웹서버 vs WAS

mtak·2021년 11월 19일
2

web server

  • http 기반으로 동작
  • 정적 리소스(html, css, js) 제공
    ex ) NGINX, APACHE

WAS(Web Application Server)

  • http 기반으로 동작
  • web server기능(정적 리소스 제공 기능)도 수행할 수 있음.
  • 프로그램 소스를 실행해 application 로직을 수행하여
    동적 html(ex. 사용자 이름에 따라 페이지가 바뀜), http api(json) 등을 제공함.
  • servlet, jsp , spring mvc을 지원한다.
    ex ) Tomcat, Jetty, Undertow

Web server vs WAS

😎 사실은 모호해..
어떤 웹서버는 프로그램을 실행하는 기능을 포함하기도 하고,
WAS는 아예 웹서버 기능을 포함하는걸?
그래서 WAS + DB 조합 만으로도 심플한 시스템을 구성할 수 있다구~

그런데 WAS가 너무 많은 역할을 맡고 있지?
WAS가 정적 리소스 처리하느라 바빠서 가장 비싼 애플리케이션 로직 수행하기가 버거울 수 있어.
심지어 저 두 조합은 WAS가 앓아 누으면 WAS가 아프다고 오류 화면도 못보여준다?

그렇다면 Web server를 투입해 WAS의 정적 리소스 처리 업무를 맡기면 되지 않을까? 동적 처리가 필요할 때만 web server가 WAS에 요청하는거지.

이렇게 하면 정적 리소스가 많을 땐 web server를,
애플리케이션 리소스가 많을 땐 WAS를 증설하면 되겠다!

또 WAS가 아플땐 이제는 web server가 오류 페이지도 띄워주겠지?

💡웹서버는 정적 리소스를 담당하고 WAS는 애프리케이션 코드 실행을 담당하게 하는 것이 비싼 서버 자원을 효율적으로 사용할 수 있는 방법 중 하나다!

Servlet

서버는 무슨 일을 할까?


클라이언트에서 위와 같이 post방식으로 저장(/save)해달라는 http 메시지를 서버에게 보내면 서버는 아래와 같은 순서로 요청을 처리하고 소켓을 종료해.

profile
노는게 젤 조아. 친구들 모여라!!

0개의 댓글