Web Server와 WAS의 구분과 웹 서비스의 이해

enjoy89·2022년 6월 17일
3
post-thumbnail
post-custom-banner

웹 기본 동작 방식

  • 브라우저에서 서버에 데이터를 요청(Request)하고, 서버는 이에 대한 응답(Response) 데이터를 만들어서 브라우저로 보내게 된다.
  • 이때 서버는 브라우저로 보낼 데이터가 정적인 데이터인지 동적인 데이터인지에 따라서 다르게 처리한다.

정적 컨텐츠와 동적 컨텐츠

정적 컨텐츠(Static)

  • 실시간으로 변화가 없는 데이터
  • 요청시 즉시 응답 가능한 컨텐츠로 image, html, css, javascript 파일이 해당된다.

동적 컨텐츠(Dynamic)

  • 실시간으로 변화가 있는 데이터
  • 사용자의 요청에 따라 각각 다른 형태인 동적 contents를 반환

Web Server

  • HTTP 프로토콜을 기반으로 클라이언트의 요청을 서비스하는 서버

    기능

    1. 웹 브라우저의 클라이언트로부터 HTTP 요청을 받아 정적 컨텐츠를 제공하는 역할
      → WAS를 거치지 않아 속도가 빠름
    2. 동적 컨텐츠 요청시 WAS에게 요청(Request)을 넘겨주고 WAS에서 처리한 결과 (응답, Response)를 웹 브라우저의 클라이언트에게 전달하는 역할
  • ex) Apache, Nginx

WAS(Web Application Server)

  • Web Server가 단독으로 처리할 수 없는 DB 조회나 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application Server
  • WAS는 Web ServerWeb Container가 합쳐진 형태로, Web Server 기능을 포함하면서 사용자의 다양한 요구에 해당하는 애플리케이션 로직을 수행할 수 있다.
  • HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어이다.
  • JSP, Servlet 구동환경을 제공해주기 때문에 웹 컨테이너(Web Container) or 서블릿 컨테이너(Servlet Container)라고도 불린다.
  • ex) Tomcat, Jeus, Undertow

Web Server와 WAS 구분

  • 웹 페이지는 보통 정적 컨텐츠와 동적 컨텐츠 모두 존재한다.

  • 이때 정적 컨텐츠는 Web Server만을 사용해서 서비스를 제공하고, DB 조회나 다양한 비즈니스 로직이 요구되는 동적 컨텐츠는 WAS을 사용해서 서비스를 제공한다.

    💡이 둘의 기능을 분리하는 이유는?

    • WAS가 정적 컨텐츠와 동적 컨텐츠를 모두 서비스하면 부하가 커지고 비교적 복잡한 동적 컨텐츠의 처리속도가 느려질 수 있어 서버 부하가 발생할 수 있다.
    • 따라서 단순한 정적 컨텐츠는 Web Server가 담당하고 WAS는 복잡한 동적 컨텐츠를 위한 처리에 집중해야 한다.

Reference

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

https://devmoony.tistory.com/113

profile
Backend Developer 💻 😺
post-custom-banner

0개의 댓글