Web Server, Web Application Server?

Server_side·2023년 11월 13일
2
post-custom-banner

이번 포스팅에서는 그동안 들어보면서 내용에 대해 애매모호했던 WS(Web Server)와 WAS(Web Application Server)에 대해 알아보고자 한다.


간단 정의 및 기능

WS(Web Server)

정의

  • 클라이언트로부터 HTTP 요청에 대해 정적 컨텐츠*를 제공하는 서버
    - 정적 컨텐츠: HTML, CSS 등 모든 클라이언트의 요청에 대해 항상 동일하게 제공되는 컨텐츠(요청값에 따라 바뀌지 않는 컨텐츠)

기능

  • 클라이언트로부터 HTTP 요청 받을 시 응답
    1. 정적 컨텐츠 제공
    2. 동적 컨텐츠 요청 시 WAS로 전달 -> 결과를 클라이언트로 응답

ex) nginx, apche 등

WAS(Web Application Server)

정의

  • 다양한 로직 처리가 요구되는 클라이언트 요청에 대해 동적 컨텐츠를 제공하는 서버

기능

  • 클라이언트로부터 HTTP 요청 받을 시 응답
    1. 정적 컨텐츠 제공
    1. 동적 컨텐츠 제공

ex) tomcat, jeus 등


WS의 필요성

WAS의 기능을 보면 WS의 기능인 정적 컨텐츠 제공을 직접 할 수 있다. 그렇다면 WS를 따로 사용하는 이유는 무엇일까?

1. 서버 부하 방지

정해진 동적컨텐츠만 제공하는 WS와 로직 처리가 필요한 정적컨텐츠를 처리하는 WAS로 나누어 역할을 분배하여 서버 부하 ↓

2. 로드밸런싱(Load Balancing)

동적컨텐츠를 처리하는 WAS의 경우 사용자가 늘어날수록 하나의 WAS로는 버거워지며 여러대의 WAS 필요
이때 WS로 들어온 동적 요청에 대해 WS에서 여러대의 WAS에 부하를 조절하며 동적 요청을 전달

  • 2-1 Health check

    WS에는 Health check 기능을 활용하여 WAS가 정상 작동하는지 주기적으로 확인하고 작동하지 않을 경우 동적 요청에 대해 다시 작동할 때까지 해당 WAS로는 전달하지 않을 수 있음

3. 보안

WAS의 경우 DB 접근 권한 등을 가지므로 보안이 중요
클라이언트의 요청을 WS가 받고 WAS로 전달하기 때문에 WAS가 외부로 노출되지 않음

4. 범용성

하나의 WS로 다양한 언어의 어플리케이션을 함께 사용할 수 있음


요약

WAS만으로 클라이언트의 요청 수행이 가능하다.
하지만 WS를 함께 사용한다면 보안, 서버 부하 방지 등 여러 이점들을 가져갈 수 있다.


참고

10분 테코톡(알리)
개발왕, 도던

profile
아마도 난 백엔드 style?
post-custom-banner

0개의 댓글