Web Server와 WAS의 차이

썬쑨·2025년 3월 23일

Spring

목록 보기
2/12

Web Server란?

Web Server는 클라이언트(웹 브라우저)로부터 HTTP 요청을 받아 HTML, CSS, JavaScript, 이미지, 동영상 등의 정적 콘텐츠를 제공하는 역할을 한다.
ex) Apache HTTP Server, Nginx

  • 동적인 요청이 들어오면 해당 요청을 컨테이너로 보내주는 역할도 한다.
    (웹 컨테이너 : 동적인 데이터들을 처리하여 정적인 페이지로 생성해주는 sw 모듈. Java는 서블릿이 이를 맡음.)
  • 경량화되고 빠른 응답이 가능하다. 기능의 분배를 잘 해준다면 서버의 부담을 줄일 수 있음.

이때 JavaScript는 동적인 기능을 가지고 있지 않나? 하는 의문이 들 수 있다. 하지만 JavaScript 자체는 웹 서버 입장에서는 정적 콘텐츠이다.

  • 정적 콘텐츠 : 웹 서버가 변경 없이 그대로 제공하는 파일(HTML, CSS, JavaScript ...)
  • 동적 콘텐츠 : 요청에 따라 실시간으로 서버에서 데이터를 가공하여 응답을 생성하는 콘텐츠(ex: DB에서 정보를 가져와 HTML을 동적으로 생성)

즉, JavaScript 자체가 동적인 기능을 제공한다고 해서 웹 서버가 동적 처리를 수행하는 것은 아니다.

WAS(Web Application Server)란?

WAS는 Web Server와 다르게 동적 콘텐츠를 처리하는 서버로, 웹 애플리케이션을 실행하고 비즈니스 로직을 수행한다. DB와 연동하여 사용자 요청에 따라 실시간으로 데이터를 생성하고, 복잡한 작업을 수행한다. 그렇기에 보다 더 많은 자원을 소모한다.
ex) Apache Tomcat, Jetty

  • Spring Boot는 기본 WAS로 내장 Tomcat을 사용한다. 이 Tomcat은 HTTP 요청을 처리하고 서블릿 생명주기를 관리해주는 등 다양한 역할을 대신해주고 있으며, spring-boot-starter-web 의존성을 추가해주기만 하면 내장 Tomcat을 사용할 수 있기에 간편한 배포가 가능하다.

Web Server와 WAS의 차이점 정리

Web Server와 WAS의 협업

일반적으로 Web Server와 WAS는 함께 사용된다.
1. Web Server가 클라이언트 요청을 수신.
2. 정적 콘텐츠는 직접 반환.
3. 동적 콘텐츠 요청은 WAS로 전달하여 처리.
4. WAS가 결과를 Web Server로 반환하면 클라이언트에게 전달

위의 구조로 서버 부하를 방지하고 효율적인 웹 서비스를 제공할 수 있다.


<참고 자료>
https://www.solarwinds.com/resources/it-glossary/web-server
https://aws.amazon.com/ko/compare/the-difference-between-web-server-and-application-server/
https://story.pxd.co.kr/1647

profile
천천히 굴러갑니다!

0개의 댓글