웹 서버와 WAS의 차이
2024-01-04

웹 서버(Web server)

웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램

웹 서버의 주된 기능은 정적 데이터를 클라이언트로 전달하는 것이다. 주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달된다.

그 외에도 클라이언트로부터 콘텐츠를 전달받는 기능도 한다. 이러한 기능은 파일 업로드를 포함하여 클라이언트에서 제출한 웹 폼을 수신하기 위해 사용된다.

대표적인 웹 서버로는 아파치 HTTP Server, Nginx, IIS가 있다

동작 방식

  • 브라우저에 URL을 입력할 때 이 URL은 실제 웹 서버의 주소 식별자이다.
  • 때문에 URL을 입력하면 서버의 IP 주소를 검색하여 HTTP 요청을 보내고,
  • 웹 서버는 데이터 베이스와 통신하여 관련 데이터를 찾아
  • HTTP 응답으로 정적 콘텐츠를 브라우저에 반환한다.

블로그, 헤더 이미지 또는 기사와 같은 정적 콘텐츠를 호스팅하는 웹 사이트는 웹 서버만으로 실행할 수 있다. 하지만 요즘 대부분의 웹 사이트들은 동적인 콘텐츠를 제공하기 때문에 WAS가 필요하다.

WAS(Web Application Server)

동적인 컨텐츠를 제공하기 위해 만들어졌다. 비지니스 로직을 추가하여 웹 서버의 응답을 계산한다.

HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 데이터베이스 서버와 같이 수행된다.

  • 동적인 콘텐츠 생성, 애플리케이션 로직 및 다양한 리소스와의 통합을 지원하여 웹 서버의 기능을 확장한다.
  • 애플리케이션 코드를 실행하고, 메시징 시스템 및 데이터베이스와 같은 다른 소프트웨어 구성 요소와 상호작용할 수 있는 런타임을 제공한다.
  • 비지니스 로직을 사용하여 웹 서버보다 더 가공된 데이터로 변환한다.

대표적인 WAS로는 아파치 톰캣, 웹스피어, JEUS, IIS가 있다

동작 방식

  • 웹 서버로 보내진 HTTP 요청을 다시 웹 서버가 WAS로 전달하면
  • WAS는 비지니스 로직을 적용하고 다른 서버 및 서드파티 시스템과 통신하여 요청을 수행하여
  • 새 HTML 페이지를 랜더링하고 이를 응답으로 웹 서버로 반환하면
  • 웹 서버는 이를 브라우저로 반환한다.

웹 서버와 WAS의 차이

  • 다루는 테스크:
    • 웹 서버는 웹 사이트를 호스팅하고 간단한 요청에 대한 응답을 제공한다. 또한 서버 활동을 기록하고 서버 측 스크립팅을 허용한다.
    • 반면에 WAS는 엔터프라이즈 시스템, 서비스 및 데이터베이스에 연결하여 동적 콘텐츠를 생성하는 비지니스 로직을 처리한다.
  • 프로토콜: 웹 서버는 주로 HTTP를 사용하고, FTP, SMTP도 지원한다. WAS는 더 많은 프로토콜을 지원한다.
  • 콘텐츠 유형: 웹 서버는 HTML 페이지, 이미지, 비디오, 파일 같은 정적 콘텐츠를 제공하는 반면, WAS는 실시간 업데이트, 개인화된 정보 등의 동적 콘텐츠를 제공한다.
  • 멀티스레딩: 웹 서버는 일반적으로 멀티스레팅을 사용하지 않지만 WAS는 멀티스레딩을 사용하여 요청을 동시에 처리한다.

웹 서버란 무엇일까?

웹 서버 - 위키백과

웹 어플리케이션 서버 - 위키백과

웹 서버와 애플리케이션 서버의 차이점은 무엇인가요?