Web Server와 WAS

오하수·2026년 1월 8일

위 그림은 Web Server와 WAS의 역할 분리를 보여준다. Web Server는 클라이언트의 요청 중 정적 자원을 처리하고, 동적 요청은 WAS로 전달한다.WAS는 비즈니스 로직을 수행하며 DB와 연동하여 최종 결과를 생성한다. Web Server와 WAS가 무엇이고 차이점에 대해 알아보자

Web Server

웹서버는 정적인 html, js, 이미지 등의 콘텐츠를 클라이언트에게 제공하는 서버.

특징

  • 정적인 콘텐츠 제공
  • 클라이언트 요청을 처리하여 응답 반환
  • 대표적인 웹서버 : Apache HTTP Server, Nginx 등

WAS

동적인 웹 애플리케이션 로직을 처리하는 서버

특징

  • Java, PHP, Python, Ruby 등으로 개발된 동적 웹 애플리케이션을 실행
  • 클라이언트 요청을 받아 비즈니스 로직 수행 후 데이터베이스(DB)연동
  • 대표적인 WAS: Tomcat, JBoss, WebLogic 등

Web Server와 WAS의 차이점

비교항목WEB(웹서버)WAS(웹 애플리케이션 서버)
역할정적 리소스 제공(HTML, CSS, JS, 이미지)동적 요청 처리(비즈니스 로직, DB연동)
처리방식클라이언트 요청을 받아 응답반환웹 서버로부터 요청을 받아 비지니스 로직처리
주요기술Apache, Nginx, Microsoft IISTomcat, JBoss, WebLogic, WebSphere
주요언어HTML, CSS, JavaScriptJAVA, PHP, Python, Ruby
DB연동X(불가능)O(가능)

Web은 정적인 콘텐츠 제공, WAS는 동적 웹 애플리케이션 실행이라는 차이가 있다.

Web Server와 WAS의 동작과정

클라이언트 사용자 -> Web Server -> WAS -> DB구조의 동작과정

  1. Web Server는 웹 브라우저 클라이언트로부터 HTTP요청을 받는다.
  2. Web Server는 클라이언트 요청을 WAS에 보낸다.
  3. WAS는 관련된 Servlet을 메모리에 오린다.
  4. WAS는 web.xml을 참조하여 해당 Servlet에 대한 Thread를 생성한다.
  5. HttpServletRequest와 HttpServletResponse 객체를 생성하여 Servlet에 전달한다.
    5-1. Thread는 Servlet의 service() 메서드를 호출한다.
    5-2. service() 메서드는 요청에 맞게 doGet() 또는 doPost()메서드를 호출한다.
  6. protected doGet(HttpServletRequest, HttpServletResponse)
  7. doGet()또는 doPost() 메서드는 인자에 맞게 생성된 적절한 동적페이지를 Response 객체에 담아 WAS에 전달한다.
  8. WAS는 Response 객체를 HttpResponse 형태로 바꾸어 Web Server에 전달한다.
  9. 생성된 Thread를 종료하고, HttpServletRequst와 HttpServletResponse 객체를 제거한다.

느낀점

Web Server와 WAS를 조사하면서 처음에는 둘이 어떤 역할을 하는 서버인지 몰랐지만,정적 처리와 동적 처리라는 명확한 역할 분담이 있다는 점이 인상 깊었다. 특히 Web Server가 앞단에서 트래픽을 처리하고, WAS가 비즈니스 로직에 집중하도록 구성하는 구조가 성능과 보안 측면에서 매우 효율적이라는 것을 알게 되었다. 그리고 요즘 실무에서는 Web Server + WAS를 함께 사용하는 것이 일반적이라고 한다. 대표적인 사례로 Web Server(Nginx)와 WAS(Tomcat)을 함께 사용하는 구조가 있다. 정적파일은 Web Server가 처리하고, 로그인과 회원가입 같은 동적 요청은 WAS로 전달하여 처리한다고 한다. 열심히 외워야겠다.. 그리고 동작과정이 좀 복잡하시네..

profile
오늘하루도수고하세용~

2개의 댓글

comment-user-thumbnail
2026년 1월 8일

맛저하세요

1개의 답글