본문 바로가기
카테고리 없음

[Linux] Web Server & WAS 간단 설명

by 떵해이 2020. 10. 21.
300x250

1. Web Server 란?

▷ 클라이언트로부터 HTTP 프로토콜을 요청 받아, HTML, CSS 등과 같은 정적 웹 페이지를 응답해주는 소프트웨어 이다.

   (클라이언트는 일반적으로 웹 브라우저를 의미한다.)

 

Web Server의 기능

 

▷ HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저)의 요청을 서비스하는 기능을 담당한다.

▷ 정적인 컨테츠를 클라이언트에게 제공한다. 또 WAS를 거치지 않고 바로 자원을 제공한다.

▷ 동적인 컨텐츠 제공을 위한 요청을 WAS에 보내고, WAS가 요청한 응답을 클라이언트에게 전달한다.

 

Web Server의 동작과정

 

1) 클라이언트(브라우저)는 서비스를 받으려는 웹 서버 HTTP 프로토콜을 이용해 웹 페이지 요청을 한다.

2) 웹 서버에서 요청에 따라 웹 페이지를 반환하여 클라이언트에 보여줍니다.

 

웹 서버의 종류는 다양하게 많이 있다. 대표적으로 인기있는 아파치(Apache) 웹 서버가 있다.

 

2. WAS(Web Application Server) 란?

▷ DB(데이터베이스) 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만든 Application Server다.

▷ Web Container(웹 컨테이너) 라고 불린다. WAS는 JSP, Servlet 구동 환경을 제공한다.

   (Container는 JSP, Servlet을 실행시킬 수 있는 소프트웨어를 말한다.)

 

WAS의 기능

 

 WAS = Web Server + Web Container

▷ 프로그램 실행환경과 DB 접속 기능 제공한다.

▷ 여러개의 트랜잭션(논리적인 작업 단위) 관리를 할 수 있다.

 

WAS의 동작과정

 

1) Web Server는 클라이언트로부터 HTTP요청 받는다.

2) Web Server는 클라이언트 요청을 WAS에 보낸다.

3) WAS는 요청을 받아 다양한 로직이나 DB와의 연동을 통해서 완성된 결과물만 응답한다.

4) WAS는 Web Server에 결과물을 전달한다.

5) Web Server는 클라이언트에게 요청한 것을 제공한다.

 

※ 간단하게 설명하였지만 중간중간에 많은 일들이 일어납니다. 자세히 알고싶으시면 구글검색 추천합니다.

 

※ 클라이언트와 서버는 실제로 웹브라우저가 지속적으로 해당 웹 페이지의 서버에 요청을 보내고 응답을 받는 과정이 일어난다. 그 과정 원할히 이루어져 웹 브라우저 화면에 결과를 출력하는 것이 기본 Web Application동작 원리이다.

 

WAS의 종류는 다양하게 많이 있다. 대표적으로 인기있는 아파치 톰캣(Apache-Tomcat) 이 있습니다.

 

 

Tip) 기본 동작 원리

 

3. WAS가 Web Server가 필요한 이유?

WAS 혼자 모든 일을 할 수 있는데 왜 굳이 Web Server가 필요할까?

 

Web Server가 필요한 이유

 

▷ Web Server를 통해 정적인 파일들을 Application Server까지 가지 않고 앞에서 빠르게 보낼 수 있다.

▷ Web Server에서는 정적 컨테츠만 처리하도록 기능을 분배하여 서버의 부담을 줄일 수 있다.

 

WAS가 필요한 이유

 

▷ 웹 페이지는 정적, 동적 컨텐츠가 모두 존재한다.

 

▷ 사용자의 요청에 맞게 적절히 동적 컨텐츠를 만들어서 제공해야 한다.

   만약 이렇지 않다면, 사용자가 원하는 요청에 대한 결과값을 모든 경우의 수를 대비해 만들어놓고 서비스 해야한다.

   그렇게 할 수도 없을 뿐더러 수행하기에 자원이 너무 부족하다.

 

▷ WAS를 통해 요청에 맞는 데이터를 DB에서 가져와 상황에 맞게 결과를 만들어 제공하는게 자원을 효율적으로 사용     할 수 있다.

 

WAS가 모든 기능을 수행할 수 있는데 같이 쓰는 이유

 

▷ 기능을 분리하여 서버 부하 방지

▷ 여러대의 WAS 연결 가능 (Web Server오류가 나도 사용자는 오류를 느끼지 못하고 이용하게 가능)

▷ 물리적으로 분리하여 보안 강화

▷ 관리가 효율적

▷ 여러 Web Application 서비스 가능 ( php, java 를 함께 사용하는 경우)

▷ 자원 효율성 및 문제점 극복, 유지보수의 편의성을 위해서 사용

반응형

댓글