본문 바로가기

CS/네트워크

웹서버와 WAS

일단 해당 내용을 들어가기 전에 웹, 웹서버에 대해 알고 넘어가야 한다.

은 인터넷 상에서 텍스트나 그림, 소리, 영상 등과 같은 멀티미디어 정보를 하이퍼텍스트 방식으로 연결해서 제공한다. 여기서 하이퍼텍스트란 문서 내부에 또 다른 문서로 연결되는 참조를 집어 넣음으로써 웹 상에 존재하는 여러 문서기리 서로 참조할 수 있는 기술을 의미한다. HTML을 사용하여 작성할 수 있고 HTTP프로토콜을 사용하면 누구나 검색하고 접근할 수 있다.

웹서버는 인터넷을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터를 말한다.

 

그리고 또 한가지, 정적 콘텐츠와 동적 콘텐츠에 대해서도 정리해보자.

정적 콘텐츠란 말 그대로 항상 동일한 페이지를 말한다.

image, html, css, javascript와 같은 파일들을 말한다.

동적 콘텐츠란 파라미터값에 맞게 동적인 콘텐츠를 말한다.

웹서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물 위에서 돌아가는 프로그램을 말한다.

 

1. Web Server

HTTP요청을 받아 클라이언트의 요청을 서비스한다. 특히, 정적인 콘텐츠(html, css, jpeg)를 제공한다.

1)정적인 콘텐츠 요청

WAS를 거치지 않고 바로 자원을 클라이언트에게 전달한다.

2)동적인 콘텐츠 요청

해당 요청을 WAS로 전달한다. WAS가 처리한 결과를 웹서버에게 넘기고, 웹서버는 이것을 클라이언트에게 넘긴다.

Apache, Nginx 등이 있다.

2. WAS

Wab Application Server의 약자로, 웹 어플리케이션을 실행시켜서 필요한 기능을 수행하고 서버에 전달한다.

주로 DB서버와 같이 수행된다.

사실 WAS는 웹서버와 웹 컨테이너를 모두 포괄한 것이다. 즉, WAS 또한 정적 콘텐츠를 제공할 수 있다.

Tomcat, JBoss, Jeus 등이 있다.

3. Web Server & Was

하지만, 대부분의 프로젝트에서는 웹 서버와 WAS를 구분하여 사용한다.

 

  • Web Server

클라이언트가 정적인 콘텐츠를 요청한다고 했을 때 진행되는 과정은 다음과 같다.

먼저 웹 문서(HTML)를 먼저 받고 여기에 필요한 이미지 파일들(정적 콘텐츠)를 다시 서버로 요청한다.

그 다음에야 비로소 정적 콘텐츠를 받을 수 있다.

이 때 WAS까지 간다면 시간이 너무 오래 걸릴 것이다. 따라서 앞단, 즉 Web Server에서 바로 정적인 콘텐츠를 보낼 수 있도록 하여 서버의 부담을 줄일 수 있다.

 

  • WAS

동적 콘텐츠를 요청할 경우, 사용자에 맞게 적절한 동적 콘텐츠를 제공해야 한다. 

이 때 정적 콘텐츠를 제공하는 웹서버만 이용한다면, 모든 데이터를 만들어놓고 서비스를 제공해야 한다.

당연히 자원이 부족할 수 밖에 없는 상황. 따라서 상황에 따라 DB에서 데이터를 가져와서 비즈니스 로직에 맞게 결과를 만들어서 제공하여 자원을 효율적으로 사용할 수 있다.

 

  • 그럼 WAS만 사용하면 되잖아?

1) 서버 부하 방지

기능을 분리하여 동적 콘텐츠는 WAS에게, 정적 콘텐츠는 웹서버에게 역할을 수행하도록 하여 서버 부하를 방지한다.

2) 보안 강화

SSL에 대한 암복호화 처리에 웹서버를 사용한다. WAS는 DB와 관련된 어플리케이션이므로 보안에 민감하다.

해킹에 대비해 웹서버를 WAS 앞단에 두어 중요한 정보가 담긴 DB나 로직까지 공격이 전파되지 않도록 한다.

3) 여러 대의 WAS 연결

로드 밸런싱을 위해 웹서버를 사용한다.

fail over, fail back 처리에 유리하다.

무중단 운영을 위한 장애 극복에 쉽게 대응할 수 있다.

4) 여러 웹 어플리케이션 서비스 가능

php, java application을 혼용하여 사용할 수 있다.

→따라서, 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 분리한다.

'CS > 네트워크' 카테고리의 다른 글

웹의 동작  (0) 2021.09.25
CORS  (0) 2021.09.25
HTTP 2.0  (0) 2021.09.19
JWT 토큰  (0) 2021.09.18
쿠키와 세션  (0) 2021.09.18