스프링 | 스프링 부트

웹 서버와 WAS란 ?

Adose 2025. 1. 20. 15:54

📘 웹 서버와 WAS란 ?

웹 서버와 WAS는 웹 상에서 서비스를 제공하기 위해서 사용되는 서버이다. 두 서버는 역할과 기능에서 차이를 가진다.

 

아래 사진은 정적 페이지, 동적 페이지의 동작 과정이다. 

 

 

1️⃣ 웹서버란 ?

❔ 웹서버란 HTTP 프로토콜을 기반으로, 클라이언트의 요청을 서비스한다. 주로 정적 컨텐츠를 처리하며, 동적 요청이 들어오면 WAS로 전달한다.

첫번째 기능 (정적 컨텐츠 처리)

  • 정적인 컨텐츠를 제공한다.

두번째 기능 ( 동적 요청 처리 )

  • 동적인 컨텐츠 제공을 위한 요청을 전달한다.
  • Client의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 Response한다. ⇒ (웹서버가 클라이언트와 WAS의 통신을 중계한다)
  • WAS 앞단에 위치하여 로드 밸런싱, 캐싱 등을 수행한다.

 

 

2️⃣ WAS란?

❔WAS(Web Application Server)란 동적인 컨텐츠(DB조회, 비지니스 로직 등)를 제공하기 위한 서버이다.

 

⚒️ WAS가 필요한 이유 ?

웹 페이지는 정적 컨텐츠와 동적 컨텐츠가 모두 존재하며, 사용자의 요청에 맞게 적절한 동적 컨텐츠를 만들어서 제공해야 한다.

이때, Web Server만을 이용한다면 사용자가 원하는 요청에 대한 결과값을 모두 미리 만들어놓고 서비스를 해야 한다.

  1. 예를들어, 웹사이트의 사용자가 5명 일때, 웹사이트는 로그인을 한 사용마다 다른 화면을 보여줘야 한다(사용자마다 작성한 게시글을 다르게 보이게) 이때는 사용자가 5명이라 그냥 5개의 html 페이지를 만들면 된다.
  2. 하지만 사용자가 몇 천 ~ 몇만 일때는 어떻게 하는가 ? => 이런 문제를 해결하기 위해 WAS가 등장
  3. 미리 정해진 정적 콘텐츠를 응답으로 주는 것이 아닌, 요청이 올때마다 적절한 컨텐츠를 생성 후 (동적) 응답을 준다. 
기능 설명 
  • HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어이며, 주로 데이터베이스 서버와 같이 수행된다.
  • 동적 데이터 처리(복잡한 로직 등) 및 응답을 생성하기 때문에 상대적으로 느리다
  • 웹 서버 뒤에서 동적 요청 처리를 담당한다
  • 웹 서버가 할 수 있는 기능 대부분이 WAS에서도 처리가 가능하다. 
    • 그렇다면 왜 웹 서버와 함께 사용하나? (여러가지 이유가 있지만 하나만 정리) 
    • 기능을 분리하여 서버 부하 방지하기 위해서이다 :  WAS => DB 조회나 다양한 로직을 처리 , 웹서버 => 단순 정적 컨텐츠
  • 주요 기술 : Tomcat, Web Sphere 등
  WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 서블릿 컨테이너 or 웹 컨테이너로 불린다. 

 

 

 

 

 

📌웹서버와 WAS  간단 정리

  웹서버 WAS
역할 정적인 콘텐츠(HTML, CSS, JS, 이미지 등)를 클라이언트 에게 제공 동적인 콘텐츠(비즈니스 로직 처리, 데이터베이스 연동 등)를 생성하고 제공
특징
  • HTTP 요청/응답 처리
  • 정적 파일(HTML, 이미지 등) 제공
  • 일부 간단한 동적 콘텐츠 처리(예: PHP, CGI 스크립트 실행)
  • 동적 요청 처리(서버 사이드 언어 기반).
  • 데이터베이스 연동 및 비즈니스 로직 수행.
  • 세션 관리, 트랜잭션 처리.
  • 여러 클라이언트 요청에 대해 애플리케이션 로직을 실행.
주요 소프트웨어 Apache HTTP Server, Nginx Tomcat, Jetty, WebSphere.

 

 

 

 

 

참고 자료

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io