웹 서버와 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는 멀티스레딩을 사용하여 요청을 동시에 처리한다.