WAS(Web Application Server) 서버와 웹 서버는 모두 웹 애플리케이션을 운영하는 데 필요한 구성 요소로, 그 역할과 기능에서 상당한 차이를 보입니다. 웹 애플리케이션 개발 및 배포를 위해서는 해당 내용을 이해하는 것이 중요합니다.
웹 서버의 역할
웹 서버는 클라이언트, 주로 웹 브라우저가 요청하는 정적 콘텐츠(HTML, CSS, JavaScript, 이미지 등)를 제공하는 서버입니다.
웹 서버의 주된 역할은 클라이언트로부터의 요청을 받아들이고, 요청된 파일을 찾아 응답하는 것입니다. 예를 들어, 사용자가 브라우저에서 특정 웹페이지를 요청하면, 웹 서버는 해당 HTML 파일을 찾아 클라이언트에게 전송합니다.
웹 서버는 정적 콘텐츠를 빠르고 효율적으로 전달하는 데 최적화되어 있습니다. 대표적으로 아파치(Apache) HTTP 서버, Nginx 등이 있습니다. 이러한 웹 서버들은 요청된 파일을 그대로 전달하거나, 약간의 처리(예: 압축, 캐싱)를 수행한 후 클라이언트에게 반환합니다. 그러나 웹 서버는 동적인 콘텐츠, 예를 들어 사용자가 입력한 데이터를 처리하거나 데이터베이스와 연동해 데이터를 생성하는 작업은 직접 수행하지 않습니다.
WAS 서버의 역할
WAS 서버는 웹 애플리케이션 서버(Web Application Server)의 약자로, 웹 서버와는 달리 동적 콘텐츠를 생성하고 처리하는 데 중점을 둡니다. WAS 서버는 클라이언트의 요청을 기반으로 프로그램 로직을 실행하고, 그 결과를 클라이언트에게 전달하는 역할을 합니다. 예를 들어, 사용자가 로그인 페이지에서 ID와 비밀번호를 입력하면, WAS 서버는 이 정보를 받아 데이터베이스와 비교한 후 로그인 여부를 결정하고, 그 결과를 웹 서버를 통해 클라이언트에게 반환합니다.
WAS 서버는 자바 서블릿(Java Servlet), JSP(JavaServer Pages), EJB(Enterprise JavaBeans) 등과 같은 기술을 사용하여 동적인 웹 페이지를 생성하고, 비즈니스 로직을 처리합니다. 대표적인 WAS 서버로는 Apache Tomcat, JBoss, WebLogic 등이 있습니다. 이들 WAS 서버는 복잡한 트랜잭션 처리, 세션 관리, 데이터베이스 연결 등 웹 애플리케이션의 핵심 기능을 담당합니다.