본문 바로가기

CS

[네트워크]Web 서버와 WAS 차이

WEB 서버


  • HTTP 프로토콜을 기반으로 하여 웹 브라우저(클라이언트)의 요청에 응답
  • 주로 정적 페이지인 HTML, 이미지, CSS, 자바 스크립트 파일을 웹 클라이언트에 제공할 때 사용
  • 동적인 컨텐츠 제공을 위한 요청을 WAS에 전달(WAS가 처리한 결과를 클라이언트에게 전달)
  • 예시 : Apache, Nginx, llS 등

WAS(Web Application Server)


  • 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진, 프레임워크)
  • 웹 서버 + 웹 컨테이너
  • 웹서버는 주로 캐시 기능, 프록시 기능 등 웹 클라이언트와 직접 연관된 일들을 처리하지만 WAS는 DB 조회나 다양한 로직 처리 등 어플리케이션과 관련된 기능을 수행
  • 예시 : Tomcat, JBoss, Jeus, Web Sphere 등

WEB 서버와 WAS의 발전 배경


  • 초창기의 웹은 단순한 정보 조회가 목적이었기 때문에, 단일 웹서버 사용
  • CGI 방식: 점차 동적페이지에 대한 요청이 많아지면서 탄생, 하지만 각각의 클라이언트 요청에 대하여 독립적인 별도의 프로세스를 생성하여 시스템의 부하가 커지는 문제가 발생
  • 스크립트 엔진 웹서버: CGI 프로그램 역할을 하는 별도의 프로그램을 스크립트 언어로 작성하고, 스트립트를 처리하는 스크립트 엔진을 웹 서버에 내장시켜서 오버헤드를 줄이는 방식
  • WAS : 웹 서버가 직접 프로그램을 호출하기 보다는 어플리케이션 서버를 통해 간접적으로 웹 어플리케이션 프로그램을 실행, 요청에 대해 역할을 나누어 자원을 효율적으로 사용

WEB서버와 WAS를 분리하여 같이 사용하는 이유(WAS가 웹서버 기능이 있는데 WAS만 사용하지 않는 이유)


  • 기능을 분리하여 서버 부하 방지
  • 물리적으로 분리하여 보안강화
  • 로드밸런싱 역할(여러 대의 WAS를 연결)
  • 여러 웹어플리케이션 서비스 가능

참고 개념


  • 정적 페이지: 동일한 리소스 요청에 대해서는 항상 동일한 내용의 페이지를 반환(항상 같은 화면이나 이미지를 보여줌)
  • 동적 페이지: 동일한 리소스의 요청에 대해 다른 내용이 반환, 코드가 포함되어 있어서 페이지 요청 시점(누가, 언제, 어떻게 등 상황)에 HTML 문장을 만들어내는 것을 의미, 동적페이지는 함수적 처리가 필요함

'CS' 카테고리의 다른 글

[CS]OAuth란?  (0) 2021.05.07
[CS] XSS와 CSRF 비교  (0) 2021.05.06
[CS]디자인 패턴  (0) 2021.04.21
[cs]함수형 프로그래밍이란?(객체지향 프로그래밍)  (0) 2021.04.21
[CS]TDD란?  (0) 2021.04.20