Webserver와 WAS(Web Application Service) 설명

yozzum·2022년 3월 20일
0

Web Server(웹서버)란?




  • 웹 사이트는 기본적으로 'client application, java server application'으로 나누어져 있다.

  • client application에서 java server application에 요청을 보내면, Web server는 요청에 맞는 데이터를 데이터베이스에서 찾고, 정적 페이지를 찾아서 리턴한다.

  • 대표적인 웹서버 프로그램으로는 Apache와 NginX가 있다.

  • 웹서버 프로그램을 활용해서 특정 폴더를 개방하고, 그 안에 있는 HTML, CSS, JS 등의 파일들로 웹사이트를 제공한다.

  • 서버에 정해진 사이트 주소로 접속을 하면 이 파일들을 꺼내가서 보여주는 것이다.

  • HTML, CSS, JS, image는 정적 파일들이다. 데이터가 변할 일이 없는 정적 웹인 것이다.
  • Apache와 NginX의 모듈을 활용하면 동적 웹을 만드는 것도 가능하다. 대표적으로 Apache와 PHP, MySQL을 연동시켜서 동적인 PHP 동적 웹사이트를 만들 수도 있다.

WAS(Web Application Server)란?




  • client application에서 회원 리스트를 요청했다는 가정을 한다. 회원리스트는 정적인 페이지가 아니다. 실시간으로 업데이트 될 수 있기 때문에, 동적으로 처리해야한다.

  • client application에서 java server application에 요청을 보내면, 웹서버는 서블릿(조각나 있는 서버 어플리케이션) 중에 요청에 맞는 파일을 찾는다. 여기에는 동적인 요청에 부합하는 쿼리/코드가 포함되어 있는데, 이 코드를 실행시키는 것이 WAS의 역할이다.

  • 보통 자바는 main 함수를 시작으로 프로그램이 동작하지만, servlet 프로그램에서는 service 함수를 시작으로 프로그램을 만든다.


TOMCAT이란?

  • 대표적인 WAS 프로그램이다.
  • 스프링으로 코딩한 웹어플리케이션을 war파일로 빌드하면, 그 안에 .class, jsp, css, js 파일 등이 압축되어있다.
  • TOMCAT을 다운받아보면, 메인 폴더안에 여러 폴더와 파일이 들어있는데, 특정 폴더안에 war파일을 넣고 실행 명령어를 치면 스프링 서비스가 TOMCAT에서 돌게된다.
  • 요즘에는 스프링을 톰캣이 들어있는 jar 파일로 빌드해서 배포하곤 한다.

Web Server와 WAS를 분리하는 이유

    1. 보안 : WAS 내부 구조를 감추기 위해 Client와의 접점은 Web Server가 맡도록 하는것이다.
      • forward proxy는 client가 자신의 IP를 서버에서 알지 못하도록 하는 것이고,
      • reverse proxy는 서버의 정보를 client에서 알지 못하도록 하는 것이다.
  • ※ 예전에는 WAS 프로그램이 상대적으로 정적파일을 다루는데 느렸다고 하지만, 현재는 큰 차이가 없다.

profile
yozzum

0개의 댓글