카테고리 없음

Web Server와 Web Application Server의 차이를 알아보자

Dodledd 2024. 7. 9. 21:46

먼저 Web server와 Web Application Server를 이해하기 위해 알고가면 좋은 것들이 있다.

 

Static Pages와 Dynamic Pages

Static Pages

정적인 페이지, 즉 이미 만들어져 컴퓨터에 저장되어 있는 파일들이다.

파일 경로 + 파일 이름을 받아 일치하는 파일 contents를 반환한다.

예를들면 iamge, html, css, javascript 등등

GET/path/index.html

Dynamic Pages

동적인 페이지, 정적인 페이지의 반대로 우리가 어떠한 값(인자)를 주면 서버는 내용에 맞는 contents를 반환한다.

GET/src/getName.me?id="ABC"

 

 

 

Web Server

1. Web Server의 개념

소프트웨어와 하드웨어로 나눠진다.

Web Server가 설치되어 있는 컴퓨터가 하드웨어,

클라이언트(웹 브라우저)에게서 HTTP요청을 받아 정적인 컨텐츠(Static Pages)를 제공하는 프로그램이 소프트웨어이다.

 

2. Web Server의 기능

  1. WAS를 거치지않고 바로 정적인 컨텐츠 제공
  2. 동적인 컨텐츠 제공을 위해 클라이언트의 요청을 WAS에게 전달, 
    WAS가 처리한 결과를 다시 클라이언트에게 반환

3. Web Server의 예

  • Apache Server
  • Nginx
  • IIS 등등..

Web Application Server

1. WAS의 개념

  • 동적인 처리 즉, DB 조회나 다양한 서비스 로직 처리에 따른 값을 반환하기 위해 만들어진 Application Server이다.
  • HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다.
  • 다른 이름으로는 웹 컨테이너(Web Container), 서블릿 컨테이너(Servlet Container)이라고 불린다.
  • WAS는 JSP, Servlet 구동 환경을 제공한다.
  • Container은 JSP, Servlet을 실행시킬 수 있는 소프트웨어이다.

2. WAS의 역할

  • WAS = Web Server + Web Container 이라고 생각한다.
  • 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.
  • DB 서버와 단짝이라 거의 같이 실행된다.
  • 또한 현재 Web Server가 하는 일을 WAS에게 시켜도 성능의 차이가 별로 없다.

3. WAS의 예

  • Tomcat
  • JBoss
  • Jeus 등등..

 

그럼 왜 Web Server와 WAS가 따로따로 필요할까?

Web Server가 필요한 이유

먼저 Web Server의 하는 일 하나만 생각해보자.

  • 클라이언트가 요청한 페이지를 반환하는 도중 이미지가 있다고 생각해보자.
    이미지가 반환 되려면 먼저 HTML 파일이 클라이언트로 반환되고 반환된 HTML파일에서 이미지파일을 다시 요청하면
    그제서야 서버로부터 이미지파일을 받아온다.
  • Web Server가 있다면 정적인 파일을 Application Server까지 가지 않고 빠르게 보내줄 수 있다.

그러므로 정적인 컨텐츠만을 담당하고 처리하고도록 기능분배가 되어 서버의 부담을 줄일 수 있다.

 

WAS가 필요한 이유

웹 페이지에는 정적인 컨텐츠 + 동적인 컨텐츠로 이루어져있다.

만약 Web Server만 사용해서 웹 페이지를 제공한다면 동적인 컨텐츠를 모두 처리해서 한 번에 반환할 수 있을 때까지 

클라이언트의 요청에 의한 응답이 느려지게 된다.

또한 Web Server만으로 수행하기에는 자원이 부족하다.

 

하지만 WAS가 있다면 정적인 페이지는 빠르게 보내주고 그 때 그 때 상황에 맞는 데이터를 DB에 가져와서 제공하므로 자원을 효과적으로 사용할 수 있다.

 

기능 분리의 장점

  1. 서버의 부하를 방지할 수 있다.
    만약 정적인 컨텐츠도 WAS가 처리하게 된다면 그만큼 할게 많아지게 되고 늦어짐에 따라 클라이언트가 봐야 할 페이지의 반환이 느려지게 된다.

  2. 물리적인 보안 강화 효과
    SSL에 대한 암복호화 처리에 Web Server를 사용해서 보안이 강화된다.

  3. 멀티 WAS 서버 운용 가능
    Load Balancing을 위해서 Web Server를 사용하고 대용량 웹 어플리케이션일수록 Web Server와 WAS 를 분리하여
    무중단 운영이 가능하게 된다.
    ex) 1번 WAS서버가 다운 됐을 시 이용을 못하게 막고 2번 WAS서버가 받아준다. 그 사이에 1번 WAS서버의 오류를 해결하고 재부팅하여 장애 극복

결국 자원 이용의 효율성과 장애 극복, 배포 및 유지 보수성을 위해 분리한다.