[TIL 51일차] Web Server와 WAS(Web Application Server)

이건·2024년 8월 9일

웹서버

웹 서버(Web Server)는 클라이언트(주로 웹 브라우저)로부터의 HTTP 요청을 수신하고, 요청된 웹 페이지나 파일을 클라이언트에게 전송하는 서버다. 웹 서버는 주로 정적 콘텐츠(HTML, CSS, 이미지 파일 등)를 제공하는 역할을 한다.

웹 서버의 주요 기능

  1. HTTP 요청 처리: 클라이언트로부터의 요청을 수신하고, 요청된 리소스를 찾아서 응답한다.

  2. 정적 콘텐츠 제공: HTML 문서, 스타일시트, 이미지 파일 등과 같은 정적 파일을 전송한다.

  3. URL 리디렉션: 특정 URL로의 요청을 다른 URL로 리디렉션할 수 있다.

  4. 로그 기록: 클라이언트의 요청과 서버의 응답을 기록하여, 트래픽 분석이나 문제 해결에 활용할 수 있다.

  5. 보안 기능: SSL 인증서를 사용하여 HTTPS를 통해 안전한 통신을 지원한다.

웹 서버의 예

  • Apache HTTP Server: 널리 사용되는 오픈소스 웹 서버로, 다양한 운영체제에서 실행된다.
  • Nginx: 높은 성능과 효율성을 자랑하는 웹 서버로, 정적 콘텐츠 제공에 최적화되어 있다.
  • Microsoft Internet Information Services (IIS): Microsoft의 웹 서버로, Windows에서 실행된다.

웹 서버의 작동 방식

  1. 클라이언트가 웹 브라우저를 통해 웹 페이지를 요청한다.
  2. 웹 서버는 요청을 수신하고, 요청된 파일이 있는지 확인한다.
  3. 파일이 존재하면, 웹 서버는 해당 파일을 클라이언트에게 전송한다.
  4. 클라이언트는 전송된 파일을 렌더링하여 사용자에게 표시한다.

웹 서버는 인터넷에서 정보와 서비스를 제공하는 데 필수적인 구성 요소로, 웹 애플리케이션의 기초 역할을 한다.

WAS(Web Application Server)

WAS(Web Application Server)는 웹 애플리케이션을 실행하고 관리하는 서버로, 동적 콘텐츠를 생성하는 데 필요한 비즈니스 로직을 처리한다. 웹 서버와의 차별점은 주로 동적 데이터를 처리하고, 다양한 서비스와의 상호작용을 관리한다는 것이다.

WAS의 주요 기능

  1. 동적 콘텐츠 생성: 클라이언트의 요청에 따라 데이터베이스와 상호작용하고, 비즈니스 로직을 실행하여 동적인 웹 페이지를 생성한다.

  2. 세션 관리: 사용자 세션을 관리하여 로그인, 장바구니 기능 등 상태를 유지할 수 있도록 지원한다.

  3. 트랜잭션 관리: 데이터베이스와의 트랜잭션을 관리하여 데이터의 일관성을 보장한다.

  4. 보안 관리: 인증 및 권한 부여 기능을 제공하여 애플리케이션의 보안을 강화한다.

  5. API 통합: 다양한 외부 서비스와의 통합을 지원하여, 웹 애플리케이션의 기능을 확장할 수 있다.

WAS의 예

  • Apache Tomcat: Java Servlet과 JSP(JavaServer Pages)를 지원하는 오픈소스 WAS로, 경량화된 서버다.
  • JBoss: Red Hat에서 제공하는 오픈소스 WAS로, Java EE 기반의 전체 스택을 지원한다.
  • IBM WebSphere: IBM의 상용 WAS로, 대규모 기업 환경에 적합한 다양한 기능을 제공한다.
  • Oracle WebLogic: Oracle의 상용 WAS로, Java EE를 지원하며, 높은 안정성과 확장성을 제공한다.

WAS의 작동 방식

  1. 클라이언트가 웹 애플리케이션에 요청을 보낸다.
  2. WAS는 요청을 수신하고, 필요한 비즈니스 로직을 실행한다.
  3. 데이터베이스와 상호작용하여 필요한 데이터를 가져온다.
  4. 동적으로 생성된 웹 페이지를 클라이언트에게 반환한다.

WAS는 복잡한 비즈니스 로직을 처리하고, 다양한 서비스를 통합하여 사용자에게 풍부한 경험을 제공하는 데 필수적인 역할을 한다.

웹 서버와 WAS(Web Application Server)의 차이

웹서버와 WAS(Web Application Server)는 모두 웹 애플리케이션을 지원하는 데 사용되지만, 그 기능과 역할에는 차이가 있다.

1. 기본 역할

  • 웹서버: 웹서버는 클라이언트(주로 웹 브라우저)로부터의 HTTP 요청을 처리하고, 정적 콘텐츠(HTML, CSS, 이미지 파일 등)를 클라이언트에게 전송하는 역할을 한다.

  • WAS: WAS는 동적 콘텐츠를 생성하고 처리하는 서버다. 주로 비즈니스 로직을 포함한 웹 애플리케이션을 실행하며, 데이터베이스와의 상호작용, 세션 관리 등을 처리한다.

2. 처리 방식

  • 웹서버: 정적 파일을 직접 전달하며, 요청이 들어오면 해당 파일을 찾아서 클라이언트에게 응답한다. 복잡한 로직이나 데이터베이스의 접근이 필요하지 않는다.

  • WAS: 클라이언트의 요청에 따라 비즈니스 로직을 실행하고, 데이터베이스와의 상호작용을 통해 동적 페이지를 생성하여 클라이언트에게 응답한다. 따라서, 프로그래밍 언어(Java, .NET 등)와 프레임워크를 사용하여 애플리케이션을 개발할 수 있다.

3. 성능 및 확장성

  • 웹서버: 정적 콘텐츠를 처리하기 때문에 성능이 뛰어나며, 대량의 트래픽을 처리하는 데 유리하다. 일반적으로 가벼운 서버로 구성된다.

  • WAS: 동적 콘텐츠 처리를 위해 더 많은 자원과 복잡한 구조가 필요하다. 성능은 웹서버에 비해 상대적으로 낮을 수 있지만, 고급 기능(트랜잭션 관리, 보안 등)을 제공하다.

4. 사용 사례

  • 웹서버: 단순한 웹사이트, 블로그, 정적 페이지 제공에 적합하다.

  • WAS: 복잡한 비즈니스 애플리케이션, 전자상거래 사이트, 데이터베이스와의 상호작용이 필요한 웹 애플리케이션에 적합하다.

결론적으로, 웹서버는 정적 콘텐츠를 제공하는 데 최적화되어 있고, WAS는 동적 콘텐츠를 처리하고 비즈니스 로직을 실행하는 데 중점을 둔다. 이 두 서버는 종종 함께 사용되어 웹 애플리케이션의 전반적인 성능과 기능을 향상시킨다.

0개의 댓글