Web Server / WAS(Web Application Server)

Yoon·2022년 6월 13일
1

network

목록 보기
3/8

1. 웹 서버의 이해

웹 서버(Web Server)

  • 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터

    클라이언트의 입장 : 웹 서버에게 주소(url)을 가지고 통신 규칙(http)에 맞게 요청하면, 알맞은 내용(html)을 응답 받음

    서버의 입장 : 클라이언트의 요청을 기다리고, 웹 요청(http)에 대한 데이터를 만들어서 응답, 이때는 데이터는 웹에서 처리할 수 있는 html, css, 이미지 등 정적인 데이터로 한정

  • 로컬 컴퓨터로도 쉽게 웹 서버를 만들 수 있다.
    무료로 공개된 아파치 웹 서버를 깔고, 포트번호랑 HTML 파일 위치를 정해주면 웹 서비스를 제공할 수 있는 컴퓨터를 가질 수 있다.

  • 한 가지 문제는 웹 서버는 html, css, 이미지 등 정적인 자료만 제공할 수 있다.
    예를들어 구구단 페이지를 전달 할 때, 정적인 자료만 제공할 수 있으므로 내용들을 다 작성 해 놔야한다. (프로그램 for문 쓰면 몇줄이면 끝나는데 정적자료는 직접 다 써야한다.)

  • 다시 말해, 웹 서버에서 브라우저에게 html을 주기 전에 애플리케이션을 돌려서 데이터를 만들고 그 만든 데이터를 넣어 주면 간단하겠지만 html은 프로그래밍 언어가 아니라 위의 문제를 해결할 수 없었다. (html은 마크업 언어)

  • 결국 요청에 따른 비즈니스 로직 처리나 DB 연동 문제를 해결하기 위해 등장한 게 WAS이다.

2. WAS의 이해

Web Application

  • 웹 어플리케이션은 웹에서 실행되는 응용 프로그램을 말한다. 우리는 애플리케이션을 통해서 이제 html의 한계를 극복 함.

Web Application Server

  • WAS는 웹 어플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달하는 일종의 미들웨어를 말한다.

  • PHP, Jsp, asp와 같은 언어들을 사용해 동적인 페이지를 만들어낼 수 있는 서버이다.

  • 프로그램 실행 환경과 데이터베이스 접속 기능을 제공한다.

  • 비즈니스 로직 수행이 가능하다.

  • 웹 서버 + 웹 컨테이너를 합친 형태이다.

컨테이너 : jsp, servlet을 실행시킬 수 있는 소프트웨어

자바 계열에서는 웹 어플리케이션을 컨테이너라고 부른다.

웹어플리케이션 컨테이너 : 웹 어플리케이션이 배포되는 공간.

동작방식

3. Web Server , WAS 차이

  • 웹 서버는 정적인 컨텐츠만 줄 수 있다.
  • WAS는 어떤 어플리케이션을 돌리고, DB를 연결하고, 어떤 로직을 수행해서, 만든 데이터를 전달할 수 있다.
  • 요약 : "상황에 따라 변하는 정보를 제공할 수 있는가?"

요약 표

구성요소설명
웹 브라우저- 사용자(클라이언트)가 요청한 웹 서버의 결과를 화면에 출력하는 애플리케이션이다.
웹서버- 웹브라우저의 요청을 받아들여서 이에 알맞는 결과를 웹 브라우저에 응답한다.
- 요청에 필요한 페이지의 로직이나 데이터베이스와의 연동을 위해서 애플리케이션 서버에 이들의 처리를 요청한다.
- 대표적인 웹 서버의 종류로는 아파치, IIS가 있다.
웹 애플리케이션 서버(WAS)- 요청한 페이지의 로직이나 데이터베이스와의 연동을 위해 처리하는 부분이다.
- 대표적인 WAS로는 톰캣, IBM의 WebSphere, Jeus(국산)가 있다.
데이터 베이스- 데이터를 저장하는 곳이다. 예를 들어 회원 정보나 게시판에 올린 글에 대한 정보를 저장한다.

4. 웹 서버와 WAS를 따로 사용하는 이유

  • 서로의 기능을 분리하여 서버 부하를 방지할 수 있다.

    • WAS는 DB 조회 등 페이지를 만들기 위한 다양한 로직을 처리하는데,
      단순한 정적 컨텐츠까지도 WAS에서 제공하면 다른 작업에 사용하는 리소스로 인해 지연이 생겨날 수 있다.
    • 다만, 톰캣 5.5이상부터는 성능이 크게 떨어지지 않는다고 한다.
  • 물리적으로 분리하여 보안을 강화할 수 있다.

    • SSL에 대한 암복호화 처리에 웹 서버를 사용한다.
    • 웹 서버를 앞단에 두어, 공격이 있을 때 중요한 정보가 담긴 DB나 로직까지(WAS까지) 전파되지 못하게 한다.

  • 여러 대의 WAS를 연결 가능할 수 있다.

    • Load Balancing
    • fail over(작동 중지된 WAS를 대신해 다른 WAS를 사용하여 장애를 극복함)
    • fail back(작동 중지된 WAS를 재동작 시킴)
  • 대용량 웹 어플리케이션의 경우(여러 개의 서버 사용) Web Server와 WAS를 분리하여
    무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.

  • 다른 종류의 WAS로 서비스 가능

    • 하나의 서버에서 PHP Application과 Java Application을 함께 사용할 수 있다.

profile
나의 공부 일기

0개의 댓글