Web Server & WAS

다혜·2022년 4월 7일
0

Web

목록 보기
2/5
post-thumbnail

🌐 Web Server


✅ Web Server란?

  • 개념에 있어서 하드웨어와 소프트웨어로 구분된다.

    • 하드웨어 : Web Server가 설치되어 있는 컴퓨터
    • 소프트웨어 : 클라이언트로부터 HTTP 요청을 받고 정적인 컨텐츠를 제공하는 컴퓨터 프로그램
  • Web Server 종류 : Apache, Nginx 등


정적 페이지 (Static Pages)

바뀌지 않는 페이지

  • Web Server에 미리 저장된 파일이 그대로 전달되는 웹 페이지.
  • 클라이언트의 요청에 해당하는 저장된 웹 페이지를 보낸다.
  • 항상 동일한 페이지를 반환한다.
  • ex. html, css, js, image 파일과 같이 컴퓨터에 저장된 파일들.

✅ Web Server의 기능

  • HTTP 프로토콜을 기반으로 클라이언트의 요청을 서비스하는 기능을 담당한다.
  • 요청에 따라 두가지 기능 중 선택해서 제공한다.
    • 정적 컨텐츠 제공
      WAS를 거치지 않고 바로 자원 제공
    • 동적 컨텐츠 제공을 위한 요청 전달
      클라이언트의 요청을 WAS에 보내고, WAS에서 처리한 결과를 클라이언트에게 전달



🌐 WAS


✅ WAS란?

  • Web Application Server의 약자.
  • Web Server 단독으로 처리할 수 없는 DB조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공한다.
  • HTTP를 통해 애플리케이션을 수행해주는 미들웨어
  • JSP, Servlet 구동 환경을 제공 해주기 때문에 Web Container 또는 Servlet Container라고도 불린다.
    • Servlet: WAS 위에서 돌아가는 Java Program
    • 컨테이너 : JSP, Servlet을 실행시킬 수 있는 소프트웨어
  • ex. Tomcat, Jeus, JBoss 등

동적 페이지 (Dynamic Pages)

인자에 따라 바뀌는 페이지

  • Web Server에 있는 데이터들을 스크립트에 의해 가공한 후 생성되어 전달되는 웹 페이지.
  • 인자의 내용에 맞게 동적인 contents를 반환한다.
  • 상황, 시간, 요청 등에 따라 페이지가 달라진다.

📌 WAS의 역할

  • Web Server와 Web Container가 합쳐진 형태이다.
  • Web Server 기능들을 구조적으로 분리하여 처리하는 역할을 한다.

✅ WAS의 기능

  • 프로그램 실행 환경 및 DB 접속 기능 제공
  • 여러 트랜잭션 관리 기능
  • 업무를 처리하는 비즈니스 로직 수행



📚 Web Server / WAS


Web Server가 필요한 이유

✔ Web Server에서 정적 컨텐츠만 처리하도록 기능을 분배하여 서버 부담을 줄인다.

WAS가 필요한 이유

✔ WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 동적으로 결과를 만들고 제공하면서 자원을 효율적으로 사용할 수 있다.


✅ Web Server와 WAS를 분리한 이유

  • 기능을 분리하여 서버 부하를 방지한다.
    • WAS는 DB 조회나 다양한 로직을 처리하느라 바쁘기 때문에 단순한 정적 컨텐츠는 Web Server에서 빠르게 클라이언트에 제공하는 것이 좋다.
    • WAS는 기본적으로 동적 컨텐츠를 제공하기 위해 존재하는 서버이다.
    • 정적 컨텐츠 요청까지 WAS가 처리한다면 정적 데이터 처리로 인해 부하가 커지게 되고, 동적 컨텐츠의 처리가 지연됨에 따라 수행 속도가 느려진다.
  • 물리적으로 분리하여 보안을 강화한다.
  • 여러 대의 WAS를 연결지어 사용이 가능하다.
    • 로드밸런싱을 위해 Web Server를 사용.
  • 여러 웹 애플리케이션 서비스가 가능하다.

Web Server를 WAS 앞에 두고, 필요한 WAS들을 웹 서버에 플러그인 형태로 설정하면 효율적인 분산 처리가 가능하다.



🔧 Web Service Architecture

  • 다양한 구조
    • Client → Web Server → DB
    • Client → WAS → DB
    • Client → Web Server → WAS → DB





💛 참고 :
https://helloworld-88.tistory.com/71
https://devmoony.tistory.com/113
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
https://codechasseur.tistory.com/25

profile
봉식이를 위한 개발을 하고 싶오

0개의 댓글