1. 웹 서버(Web Sever)란?
1) 정의
인터넷 상에서 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지들을 보내주는 역활을 하는 프로그램입니다.
간단히 말하면 HTTP 요청에 따라 서버에 저장되어 있는 적절한 웹페이지를 클라이언트에게 전달하는 것입니다.
웹 페이지 뿐만 아니라 그림, 스타일 시트, 자바스크립트도 해당합니다.
주로 서버에 있는 리소스를 전달하는게 주된 기능이기도 하지만 클라이언트로부터 콘텐츠를 받는 것도 웹 서버 기능에 포함합니다.
2) 기능
① HTTP
② 통신 기록
③ 인증
④ 정적 콘텐츠 관리
⑤ HTTPS 지원
⑥ 가상 호스팅
⑦ 대용량 파일 지원
⑧ 대역폭 스로틀링
3) 종류
제품 명 | 제작사 | 라이센스 |
Apache HTTP Server | Apache | 오픈소스 |
IIS (Internet Information Services) | Microsoft | 쌍용(윈도우 서버 사용시 무료) |
Nginx | nginx, iNC. | 오픈소스 |
GWS(Google Web Server) | Google |
2. 웹 어플리케이션 서버(Web Application Server/WAS)란?
1) 정의
인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 어플리케이션을 수행해 주는 미틀웨어라고 합니다.
단순하게 WAS라고도 합니다. Servlet, ASP, JSP, PHP 등의 웹 언어로 작성된 웹 어플리케이션을 서버단에서 실행될 후 실행 결과값을 사용자에게 넘겨주게 되고, 우리가 가진 브라우져가 결과를 해석해서 표시하는 순으로 동작을 합니다.
2) 기능
① 프로그램 실행 환경과 ㄷ이터베이스 접속 기능을 제공
② 여러개의 트랜잭션을 관리
③ 업무를 처리하는 비즈니스 로직 수행
3) 종류
제품 명 | 제작사 | 라이센스 |
제우스 | 한국 티맥스소프트 | 상용 |
웹로직 | 미국 오라클 | 상용 |
웹스피어 | 미국 IBM | 상용 |
레진 | 미국 Caucho | 상용 |
클래스피시 | 미국 오라클 | 오픈소스(CDDL, GPL) |
제이보스 | 미국 레드햇 | 오픈소스(LGPL) |
인터스테이지 | 일본 후지쯔 | 상용 |
아파치 톰캣 | Apache 재단 | 오픈소스 |
제이런(Jrun) | Adobe | 상용 |
Winston Servlet Container | Rick Knowles | 오픈소스 |
Jetty | Eclipes 프로젝트 | 오픈소스 |
3. 웹 서버와 웹 어플리케이션 서버의 차이 및 구성
웹 서버는 정적 데이터를 처리하는 용도로, 웹 어플리케이션 서버는 동적 데이터를 처리하는 용도로 사용
1) 기본적인 웹 사이트 구성
<그림 1> 기본적인 웹 사이트의 환경
① 장점 : 사용자 증가에 따라 스위치 장비를 통해 로드 밸런싱을 수행하고, 여러대의 WAS를 통해 지원이 가능하다.
필요시에 추가로 WAS를 증설하는 구조라고 볼 수 있다.
② 단점 : WAS가 정적인 데이터(HTML/Image)의 처리와 동적인 데이터(웹 어플리케이션)의 처리를 동시에 수행하기 때문에 최적화 측면에선 바람직하지 않다. 또한 정적 데이터의 입출력 처리를 위해 웹 어플리케이션의 수행을 방해할 수 있고, 그 반대의 경우도 있다.
2) 웹 서버와 WAS로 구성된 환경
웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도한 형태이다.
정적인 데이터는 구조적으로 앞에 존재하는 웹 서버에서 처리하고, 동작인 데이터는 뒷단의 WAS가 처리한다.
<그림 2> 웹 서버와 WAS로 구성된 환경
사용자의 요청에 대해서 정적 데이터인 HTML과 자바스크립트 파일, CSS, Image 등을 앞단의 웹 서버에 위치 시켜 처리함으로써 WAS로 서비스 요청이 넘어가지 않게 한다.
또한 웹 어플리케이션 서비스를 위치적으로 뒷편에 존재라는 WAS에 넘겨줌으로써 WAS는 어플리케이션의 수행이 집중할 수 있다.
웹 서버 단에서 처리할 것과 WAS에게 넘겨질 것을 처리하는 방식은 웹 서버 단의 Cinfiguration을 통해 처리할 수 있다.
특정 확장자나 디렉토리 업무를 WAS로 넘길지 여부는 웹 서버 단에서 처리한다.
3) 특정 기능에 대한 서버를 별도로 두고 있는 환경
<그림 3> 이미지 서버를 별도로 두고 있는 환경
점점 화려해지는 UI를 자랑하는 페이지들이 많아짐에 따라 이미지의 비중이 증가하고, 이런 이미지들이 전체 네트워크 비중의 상당부분을 차지한다. 따라서 이미지 서버를 따로 구성해 네트워크 비중도 줄이면서 웹 서버와 WAS를 좀 더 효과적으로 사용할 수 있는 구조라 할 수 있다.
또는 특정 콘텐츠에만 집중적인 요청을 받는 경우도 있다.
예를 들어 대학 입시 때 경쟁률 조회는 상당히 많은 사용자에 의해 조회가 되고, Reload 또한 빈번하게 일어나므로 특정시간 간격으로 HTML을 생성하고, 페이지를 특정 서버에 위치시켜 적절하게 부하를 분산시켜 해결이 가능하다.
① 장점 : 다양한 환경에 대한 대처가 빠름
② 단점 : 구조를 정확하게 이해하지 않았을 경우에는 개발 및 테스트에 많은 시간이 쓰임
4) WAS단을 Logic으로 구분하여 구성
<그림 4> was단을 Logic으로 구분하여 구성
WAS단의 프로그램이 많은 비중을 차지하는 경우, Presentation Logic을 담당하는 프로그램과 Business Logic을 담당하는 프로그램 구분하는 구성이다. 이런 구성은 특정 로직 부분의 부하에 따라 적절한 대응을 할 수 있으나 구조가 복잡해지는 단점이 있다.
'Web?' 카테고리의 다른 글
MVC(모델, 뷰, 컨트롤러) (0) | 2016.07.19 |
---|---|
SOAP와 REST(Simple Object Access Protocol) (0) | 2016.07.19 |
자바 서블릿, JSP로 본 웹 어플리케이션의 발전 흐름 (0) | 2016.07.15 |
닷넷 프레임 워크 (0) | 2016.07.11 |
ASP.NET WebForm, MVC 프로그램 기타 (0) | 2016.07.06 |