Web Server 란?

웹 서버란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다.

이때 웹 서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해준다.

이러한 웹 서버에는 Apache, NginX 등이 있다.

비교

→ 특정 패스로 특정 파일을요청하게 되면 웹서버에서 그 파일을 찾아서 클라이언트에게 응답을 줌

→ Alice 라는 데이터를 인자로 받으면 DB에서 Alice 데이터를 찾거나 그 데이터를 로직처리해서 반환

Web Server의 기능

  • 클라이언트로 HTTP 요청을 받을 수 있다
  • 정적 컨텐츠 요청 시 : 정적 컨텐츠(html, jpeg, css..) 를 제공할 수 있다.
  • 동적 컨텐츠 요청 시 : WAS 로 전달하여 WAS가 처리한 결과를 클라이언트에게 전달

    WAS(Web Application Server)

WAS (Web Application Server)는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버로, 주로 HTTP 프로토콜 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 제공하는 미들웨어이다. WAS는 JSP, Servlet 구동환경을 제공하며, 서블릿 컨테이너 또는 웹 컨테이너로도 불린다.

WAS는 웹 서버의 기능들을 분리하여 처리하고자 하는 목적으로 개발되었다. 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등 다양한 기능을 처리하는 분산 환경에서 사용된다. WAS는 프로그램 실행 환경과 DB 접속 기능을 제공하며, 여러 개의 트랜잭션을 관리할 수 있으며, 비즈니스 로직을 수행할 수도 있다.

이러한 WAS에는 Tomcat, JBoss, WebSphere 등이 있다. ⇒ 웹 서버의 기능들을 구조적으로 분리하여 처리하는 역할

** 웹 컨테이너 : 웹 서버가 보낸 JSP, PHP 등의 파일을 수행한 결과를 다시 웹 서버로 보내주는 역할을 함 (서블릿 및 JSP 페이지 실행을 위한 런타임 환경을 제공하고 이러한 구성 요소의 수명 주기를 관리한다.)

WAS 주요 기능

  1. 프로그램 실행 환경 및 DB 접속 기능 제공
  2. 여러 트랜잭션 관리 기능
  3. 업무 처리하는 비즈니스 로직 수행

was구성

Web Server와 WAS

앱

Web Server가 필요한 이유?

: 웹 서버에서는 정적 컨텐츠만 처리하도록 기능 분배를 해서 서버 부담을 줄이는 것

클라이언트(웹 브라우저)에 이미지 파일(정적 컨텐츠)을 보내는 과정에서, 이미지 파일과 같은 정적인 파일들은 웹 문서(HTML 문서)가 클라이언트로 보내질 때 함께 전송되지 않는다. 클라이언트는 HTML 문서를 먼저 받은 후, 필요한 이미지 파일들을 다시 서버로 요청하여 받아온다. 이때, 웹 서버를 통해 정적인 파일들을 Application Server까지 전달하지 않고 앞단에서 빠르게 보내줄 수 있으므로, Web Server에서는 정적 컨텐츠만 처리하도록 기능을 분배하여 서버 부담을 줄일 수 있다.

WAS가 필요한 이유?

: WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 맞게 그때마다 결과를 만들고 제공하면서 자원을 효율적으로 사용할 수 있음

웹 페이지에는 정적 컨텐츠와 동적 컨텐츠가 모두 존재한다. 따라서 사용자의 요청에 맞게 적절한 동적 컨텐츠를 생성하여 제공해야 한다. 이때, Web Server만을 이용하면 모든 요청에 대한 결과값을 미리 만들어 놓고 서비스해야 하므로 자원 부족 문제가 발생할 수 있다. 이를 해결하기 위해 WAS를 활용하여 요청에 맞는 데이터를 DB에서 가져와 비즈니스 로직에 따라 결과를 생성하여 제공함으로써 자원을 효율적으로 사용할 수 있다.

서브목차