[WEB] Web Server와 WAS

01 Oct 2024 - juno

#WEB  #Web-Server  #WAS  #Web-Application-Server  #면접대비 


최근 리마인드하게된 Web Server와 WAS(Web Application Server)


1. Static pages와 Dynamic pages

Web Server와 Web Application Server를 알기 전에 Static pages와 Dynamic pages를 이해하면 좋다.

Static pages(Web Server)

Dynamic pages(WAS)

2. Web Server 와 Web Application Server

Web Server

Web Server의 개념

Web Server의 기능

요청에 따라 두가지 기능중 적절히 선택하여 수행한다.

기능 1)

기능 2)

Web Server의 대표적인 예시

Apache Server, Nginx 등

Web Server 작동방식

  1. 브라우저(클라이언트)는 URL을 사용하여 서버의 IP주소를 찾는다.
  2. 브라우저는 정보에 대한 HTTP 요청을 보낸다.
  3. Web Server는 DB서버와 통신하여 관련 데이터를 찾는다.
  4. Web Server는 HTTP 응답으로 HTML, 이미지, 비디오 등 정적 리소스를 브라우저에 반환한다.
  5. 브라우저는 받은 정보를 표시한다.

블로그, 기사 등과 같은 정적 컨텐츠를 호스팅하는 웹사이트들을 Web Server를 통해 실행할 수 있다.

WAS(Web Application Server)

WAS의 개념

WAS의 역할

WAS의 주요기능

  1. 프로그램 실행 환경(컨테이너) DB접속기능 제공
  2. 여러 트랜잭션(논리적인 작업단위) 관리 기능
  3. 업무 처리를 위한 비즈니스 로직 수행

WAS의 대표적인 예시

Tomcat, JBoss, Jeus, Web Sphere 등

WAS 작동방식

  1. 브라우저(클라이언트)가 URL을 사용하여 서버의 IP주소를 찾는다.
  2. 브라우저는 정보에 대한 HTTP요청을 보낸다.
  3. Web Server는 요청을 WAS로 전송한다.
  4. WAS는 비즈니스 로직을 적용하거나 다른서버 및 서드파티 시스템과 통신하여 요청을 수행한다.
  5. WAS는 새 HTML페이지를 렌더링하고 이를 응답으로 Web Server에 반환한다.
  6. Web Server는 브라우저에 응답을 반환한다.
  7. 브라우저가 정보를 표시한다.

3. Web Server와 WAS의 차이

그렇다면 둘의 차이는 뭘까

4. Web Server 와 WAS를 분리하는 이유

Web Server가 필요한 이유

WAS가 필요한 이유

WAS가 Web Server기능까지 수행하면 안되나?

  1. 기능을 분리하여 서버 부하 방지
    • WAS는 DB조회나 비즈니스 로직을 처리하느라 바쁘기 때문에 단순한 정적 리소스는 Web Server에서 빠르게 클라이언트에게 제공하는 것이 효율적이다.
    • 정적 리소스까지 WAS에서 처리하게 된다면 정적 리소스처리로 인해 부하가 커지고, 동적 리소스의 처리가 지연되어 수행속도가 느려진다.
    • 즉, 이로 인해 페이지 노출 시간이 늘어나게 된다.
  2. 물리적으로 분리하여 보안 강화
    • SSL에 대한 암복호화 처리에 Web Server를 사용
  3. 여러대의 WAS를 연결 가능
    • Load Balancing을 위해 Web Server를 사용 할 수 있다.
    • fail over(장애 극복,조치), fail back(장애 복구) 처리에 유리하다.
    • 대용량 웹 어플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리하여 무중단 운영을 위한 장래극복에 쉽게 대응할 수 있다.
    • 예를 들어, Web Server에서 오류가 발생한 WAS를 이용하지 못하게 하고 WAS를 재시작함으로써 사용자는 오류를 느끼지 못하고 이용할 수 있다.
  4. 여러 웹 어플리케이션 서비스 가능
    • 예를 들어, 하나의 서버에 PHP, JAVA application을 함께 사용하는 경우
  5. 기타
    • 접근 허용 IP관리, 2대 이상의 서버에서의 세션관리 등도 Web Server에서 처리하면 효율적이다.

요약

자원 이용의 효율성, 장애극복, 배포 및 유지보수의 편의성 을 위해 Web Server 와 WAS를 분리한다.

출처


굉장히 잘 정리된글

잘 요약된 글

AWS제공, 웹서버와 WAS의 동작과정이 잘 정리됨