(2023.2.4) Today_I_Learned_day-113

imRound·2023년 2월 4일
post-thumbnail

웹 서버(Web Server)란?

  • 사용자(Client)가 브라우저 주소창에 url을 입력하여 어떤 페이지를 요청하면, http 요청을 받아들여 HTML 문서와 같은 정적인 콘텐츠를 사용자에게 전달해주는 역할

웹 서버의 기능

  • HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스하는 기능을 담당한다.

  • 두 가지 기능 중 적절하게 선택하여 수행

  • 기능 1

    • 정적인 컨텐츠를 제공한다.
    • WAS를 거치지 않고 바로 자원을 제공한다.
  • 기능 2

    • 동적인 컨텐츠 제공을 위한 요청 전달
    • 클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달(응답, Response)한다.
    • 클라이언트는 일반적으로 웹 브라우저를 의미

웹 서버의 예

  • Apache Server
  • Nginx
  • IIS(Window 전용 Web 서버)

WAS(Web Application Server)란?

  • DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
  • HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어(소프트웨어 엔진)이다.
  • WAS 또한 웹 서버와 동일하게 HTTP 기반으로 동작한다.

WAS의 역할

  • WAS = Web Server + Web Container
  • Web Server 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시
    • 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.
    • 주로 DB 서버와 같이 수행
    • WAS가 가지고 있는 Web Server도 정적인 컨텐츠를 처리하는데 있어 성능상 큰 차이가 없음

WAS 주요 기능

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

WAS의 예

  • Tomcat
  • JBoss
  • Jeus
  • Web Sphere

차이점

  • 웹 서버는 정적인 데이터를 처리하는 서버
    • 이미지나 단순 html 같은 정적인 리소스를 전달
    • WAS만을 이용할 때보다 빠르고 안정적으로 기능을 수
  • WAS는 동적인 데이터를 위주로 처리하는 서버
    • DB와 연결되어 사용자와 데이터를 주고받고, 조작이 필요한 경우
    • 정적 콘텐츠는 웹 서버에게 맡기고 WAS는 DB조회 및 다양한 로직을 처리하는데 집중 요망
profile
Django 개발자

0개의 댓글