[Boostcourse] 웹서버, WAS
웹서버란?
- 웹서버는 소프트웨어를 보통 말하지만, 웹서버 소프트웨어가 동작하는 컴퓨터를 말하는 경우도 있다.
- 웹서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML문서나 각종 리소스를 전달하는 것
- 웹 브라우저, 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장되어 있는 정적인 데이터나 동적인 결과가 될 수 있다.
- 보통 HTTP 프로토콜 사용
웹 크롤러
네이버나 구글 같은 검색 사이트에서 다른 웹사이트 정보를 읽어갈때 사용하는 소프트웨어
웹 서버 소프트웨어 종류
가장 많이 사용하는 웹 서버는 Apache, Nginx, Microsoft, Google 웹서버이다. Apache점유율이 가장 높지만 Nginx는 사용량이 계속 늘어나고 있다.
WAS
최초의 웹이 등장했을 때는 정적인 데이터만 보여줬다. 웹이 널리 사용되면서 요구사항은 점점 커지게 됐고 웹에서 데이터를 입력하고 조회하는 등의 동적인 기능을 요구하게 되었다.
동적인 기능은 프로그래밍을 통해서 가능했는데 CGI(웹서버에서 프로그래밍이 들어가는 기능)는 단순한 프로그래밍에선 별 문제가 없었지만 점점 복잡한 프로그래밍 적인 기능을 요구하기 시작했다.
이러한 기능들은 DBMS과 연관된 경우가 많았고 브라우저와 DBMS사이에서 동작하는 미들웨어가 필요하게 됐는데 이러한 미들웨어를 와스(WAS)라고 한다.
WAS의 중요한 기본 기능 세가지
- 프로그램 실행환경과 데이터베이스 접속 기능을 제공
- 여러개의 트랜잭션을 관리
- 업무를 처리하는 비즈니스 로직 수행
이외에도 다양한 기능을 제공하는데 웹 서버의 기능도 제공한다. WAS가 제공하는 웹서버의 기능도 웹서버가 제공하는 기능에 비해서 성능이 떨어지지 않는다.
(부스트코스 현재 과정에서는 WAS, 톰캣이 가지고 있는 웹서버로 충분히 가능해서 Apache같은 웹서버는 같이 설치하지 않는다.)
그럼 왜 웹서버를 사용할까?
WAS자체에 문제가 발생한 경우, 앞단의 웹 서버단에서 해당 WAS를 이용하지 못하도록하고 문제를 해결하는 등 “장애 극복 기능”을 위해서 웹 서버를 사용한다.
대규모 웹 애플리케이션에서는 무중단으로 운영하기 위해 상당히 중요한 기능이다.
구성하는 역할
웹서버 : 정적인 콘텐츠를 웹 브라우저에게 전송하는 역할
WAS : 동적인 결과를 브라우저에게 전송하는 역할
톰캣 버전별 차이점
톰캣은 버전별로 서블릿, JSP, EL, WebSocket, JASIC의 사양과의 매핑이 다르고 지원되는 java버전 또한 각기 다르니 자신이 사용하려는 기술의 버전과 일치하는 톰캣 버전을 사용해야한다.
Leave a comment