본문 바로가기
웹 프로그래밍

웹 서버와 WAS

by 코리늬 2018. 5. 1.

- 웹 서버

  • 웹 서버는 소프트웨어를 보통 말하지만, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말한다.
  • 웹 서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML문서나 각종 리소스를 전달하는 것이다.
  • 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장되어 있는 정적인 데이터이거나 동적인 결과가 될 수 있다.
  • 정적인 데이터 : 이미지, html, css, js파일과 같이 컴퓨터에 저장되어 있는 파일
  • 동적인 데이터 : 웹 서버에 의해 실행되는 프로그램을 통해 만들어진 결과물

- 웹 크롤러
  • 네이버, 구글과 같은 사이트에서 다른 웹 사이트 정보를 읽을 때 사용하는 소프트웨어

- 웹 브라우저와 웹 서버
  • 클라이언트와 웹 서버는 http를 이용해 통신한다.
  • 웹 브라우저에서 naver를 접속했다고 가정 했을 때, naver메인페이지로 보여지는 html파일을 요청한다.
  • 그렇게 되면 웹 서버는 사용자가 요청한 html 문서를 웹 브라우저에게 전달한다.
  • 웹 서버로 부터 받은 문서를 읽어들여 해석을 한다. 알맞게 보여주기 위해서
  • 이 과정에서 리소스들을 서버에 요청하게되고 브라우저에게 전달한다.
  • 이렇게 이러한 과정을 합쳐주는 것을 렌더링한다라고 한다.

(자세한 내용은 browser의 동작과정 목록에 정리해 놓았다.)


- 웹 서버 소프트웨어의 종류

  • 가장 많이 사용하는 웹 서버는 Apache, Nginx, Microsoft, Google 웹서버
  • Apache 웹 서버는 Apache Software Foundation에서 개발한 웹서버로 오픈소스 소프트웨어이며, 거의 대부분의 운영체제에서 설치 및 사용이 가능하다. Nginx는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스를 하는 것을 목적으로 만들어진 서버이며 Apache웹 서버와 마찬가지로 오픈소스 소프트웨어이다.


- 미들웨어(MiddleWare)

  • 클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리로 인해 비용이 많이 발생하는 문제가 있었다.
  • 비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 따로 동작함으로써 클라이언트는 입/출력만 담당하도록하는 방식이다.

- WAS(Web Application Server)

  • WAS는 일종의 미들웨어로 웹 클라이언트의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가진다.
  • 최초의 웹은 정적인 컨텐츠만 있었지만, 점차 동적인 기능을 요구하게 되었다.
  • 프로그램 실행환경과, DB접속기능을 제공한다.
  • 여러개의 트랜잭션을 관리한다.
  • 업무를 처리하는 비즈니스 로직을 수행한다.

** 웹 서버 VS WAS
  • WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있다.
  • 현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다.
  • 규모가 커질수록 웹 서버와 WAS를 분리한다(보통 장애 극복 기능 때문이다).
  • 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 대체로 분리한다.

** 웹 서버(예를 들어 아파치)는 정적인 컨텐츠를 처리하고 WAS(예를 들어 아파치 톰캣)은 동적인 컨텐츠를 처리한다.
WAS만으로도 충분히 웹 서버의 기능을 커버할 수 있어서, WAS만 가지고 컨텐츠를 처리하는데는 문제가 없지만,
규모가 클 경우 좀더 단순하고 가벼운 웹서버로 먼저 처리할 건 처리하고 WAS로 나머지 처리를 하는것이 더 효율적이다.


'웹 프로그래밍' 카테고리의 다른 글

Request, Response 객체 이해하기  (0) 2018.05.02
Servlet 이란?  (0) 2018.05.02
browser의 동작  (2) 2018.05.01
웹 Front-End 와 웹 Back-End  (0) 2018.04.30
웹의 동작 ( HTTP 프로토콜 이해)  (1) 2018.04.30

댓글