확실하게 웹서버와 WAS 기능 정리하기

Genie·2021년 11월 8일
1

📒 웹 클라이언트

  • html,js,css를 해석해서 사용자에게 보여주는 브라우저를 의미한다.

📒 웹서버

  • 웹 브라우저(클라이언트)로 부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램

  • 대표적으로 Apache, Nginx

    💡 기능

    1. 정적 컨텐츠 요청 시
      - 정적 컨텐츠(html, image, css) 를 제공할 수 있다.
      정적 컨텐츠 : 요청 인자 값에 상관없이 달라지지 않는 이미지, html 컨텐츠 어느 사용자 요청이든 항상 동일한 컨텐츠

    2. 동적 컨텐츠 요청 시
      - WAS 로 전달하여 WAS 가 처리한 결과를 클라이언트에 전달
      동적 컨텐츠 : 요청 인자에 따라 바뀔 수 있는 컨텐츠


📒 WAS ( Web Application Server )

  • DB 조회나 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 프로그램

  • 대표적으로 Tomcat, Jeus, WebLogic, WebSphere

    💡 기능

    • 클라이언트로부터 HTTP 요청을 받을 수 있다.
    • 요청에 맞는 정적 컨텐츠를 제공할 수 있다. ( 대부분의 WAS 는 Web Server 를 내장하고 있다.)
    • DB 조회나 다양한 로직 처리를 통해 동적 컨텐츠를 제공할 수 있다.
    • 사용자가 원하는 요청에 대한 결과값을 모두 미리 만들어놓고 서비스하기에는 자원이 부족하므로 요청이 들어올 때마다 DB 와 비즈니스 로직을 통해 원하는 결과물을 제공할 수 있다.

    💡 Web Server 와 같이 사용할 때의 장점

    • 책임 분할을 통한 서버 부하 방지
      • 정적 컨텐츠는 Web Server , 동적 컨텐츠는 WAS 가 담당하여 서버 부하를 방지한다.
    • 여러 대의 WAS 로드밸런싱
      • WAS 여러대를 나누어서 처리할 수 있도록 설정
    • 서로 다른 Web Application 을 하나의 웹서버로 서비스가 가능
    • 여러 대의 WAS Health check 가능
      • Health Check
        • 서버에 주기적으로 HTTP 요청을 보내서 서버의 상태를 확인하는 방법
        • Interval(요청날리는주기)
        • Fails(서버가 비정상이라고 판단하는 횟수, default 1회)
        • Passes(서버가 다시 복구되어 요청이 2번 연속 성공하면 서버가 정상으로 인지, default 1회) 등이 있다.
    • 보안에 유리
      • 리버스 프록시를 통해 실제 Web Application(WAS) 를 외부에 노출하지 않을 수 있다.

읽어주셔서 감사합니다. 피드백 환영합니다 🙂

profile
차근차근

0개의 댓글