Post

Web Server 와 Web Application Server

WS(웹서버) 는

인터넷에서 웹사이트와 같은 웹 애플리케이션을 호스팅하기 위한 소프트웨어이다.

주로 클라이언트에서 요청하는 웹페이지, 이미지, 동영상 등의 정적 컨텐츠를 제공 하는 역할을 하며 기타 부가기능도 제공한다.

로드 밸런싱
로드 밸런싱 기능을 사용하여 여러 대의 서버를 관리하고, 트래픽 부하를 분산시켜 웹사이트의 가용성과 성능을 향상시키는데 도움을 준다.
캐싱
이전에 요청된 자원을 캐시하여 다음 요청 시 빠른 응답을 제공할 수 있다.
웹 보안
SSL 인증서를 사용하여 데이터 암호화를 지원하거나 웹사이트에 대한 액세스 제어를 위해 사용자 인증 및 권한 부여를 구현할 수 있다.
로깅 및 모니터링
웹서버는 요청 및 응답 데이터를 로그 파일에 기록하고, 서버 및 애플리케이션의 상태를 모니터링하여 문제가 발생하면 적시에 대처할 수 있도록 한다.

웹서버의 종류로는 Apache, NginX, IIS 등이 있다.

WAS(웹 애플리케이션 서버) 는

인터넷에서 웹 애플리케이션을 실행하기 위한 소프트웨어이다.

데이터베이스와 상호작용하여 비즈니스 로직을 처리하고 HTML 페이지 / XML 문서 / JSON 데이터 같은 콘텐츠를 동적으로 생성하여 반환하는 역할을 한다.

WAS는 웹서버와 함께 사용되기도 하며 함께 사용할 경우 웹 애플리케이션의 안정성이 높아진다.

사실 웹서버로 알려진 Apache, NginX, IIS 도 WAS의 역할을 수행할 수 있어서 웹서버와 WAS의 경계가 모호하다.

부가 설명

일반적으로 WAS는 Web Server의 기능과 Web Container의 기능을 모두 제공하는 소프트웨어를 말한다.

서블릿 기술을 이용하는 Web Container 를 Servlet Container 라고 하며 서블릿 기술을 이용하지 않으면 Web Container 는 동적인 콘텐츠를 제공할 수 없다.

Web Container 가 서블릿 기술을 이용하지 않고 동적인 콘텐츠를 제공하려면 PHP, Python 과 같은 스크립트 언어로 CGI (Common Gateway Interface) 기능을 하는 프로그램을 개발해야 한다.

따라서 django, node.js 같은 Java 언어가 아닌 다른 언어로 웹 애플리케이션을 개발하는 것들은 WAS로 분류할 수 없다.

결론은 Tomcat / Jetty / Undertow 같은 WAS 로 서블릿을 사용하지 않는다면 Apache / NginX + django / node.js 환경이 낫다.

This post is licensed under CC BY 4.0 by the author.