-
웹 서버, 웹 어플리케이션Technique/WEB 2017. 6. 13. 10:16반응형
웹 서버 ( Web Server )
인터넷 상에서 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지들을 보내주는 역할을 하는 프로그램.
간단히 말하면 HTTP 요청에 따라 서버에 저장되어 있는 적절한 웹 페이지를 클라이언트에게 전달하는 것
웹 페이지 뿐만 아니라 그림, 스타일 시트, 자바스크립트도 해당
주로 서버에 있는 리소스를 전달하는게 주된 기능이기도 하지만, 클라이언트로부터 컨텐츠를 받는 것도 웹 서버 기능에 포함되어 있다.
제품명
제작사
최신버전
라이센스
아파치
아파치 재단
2.4.4
오픈소스
IIS
마이크로 소프트
8.0
상용( 윈도우 서버 이용시 무료 )
nginx
Nginx.inc
1.5.1
오픈소스
GWS
구글
웹 어플리케이션 서버 ( Web Application Server / WAS )
인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어
단순하게 WAS라 불리고, Servlet, ASP, JSP, PHP등의 웹 언어로 작성된 웹 어플리케이션을 서버단에서 실행한 후 실행 결과값을 사용자에게 넘겨주게 되고, 이를 웹 브라우저가 결과를 해석해서 화면에 표시하는 순으로 동작한다.
기본 기능
- 프로그램 실행 환경과 데이터베이스 접속 기능을 제공
- 여러 개의 트랜잭션을 관리
- 업무를 처리하는 비지니스 로직 수행
WAS의 명확한 정의가 존재하지 않기 때문에 일부 기능만 가진 웹 어플리케이션 서버도 많이 존재하고 있다.
제품명
제작사
최신버전
라이센스
제우스
한국 티맥스소프트
7.c
상용
웹로직
미국 오라클
10.3.6
상용
웹 스피어
미국 IBM
7.c
상용
레진
미국 Caucho
4.0.7
상용
글래스 피시
미국 오라클
3.1.2.2
오픈소스
제이보스
미국 레드햇
7.1.0.CR1b
오픈소스
인터스페이지
일본 후지쯔
9.0.0
상용
아파치 톰캣
Apache 재단
7.0.4.1
오픈소스
제이런(Jrun)
Adobe
4.0
상용
Winston Servlet Container
Rick Knowles
0.9.10
오픈소스
Jetty
Eclipse 파운데이션
3.0
오픈소스
차이 및 구성
기능적인 차이로 구분을 지어 사용된다.
웹 서버는 정적 데이터를 처리하는 용도, 웹 어플리케이션 서버는 동적 데이터를 처리하는 용도로 나눌 수 있다.
그러나 톰캣의 경우처럼 웹 어플리케이션 서버에 웹 서버 기능을 포함된 서버 프로그램도 존재한다.
간단히 집에서 웹 서버 기능이나, 웹 어플리케이션을 이용하고자 한다면 톰캣만 설치해도 가능하다.
반대로 웹 서버에서 내부에 어플리케이션을 동작할수 있는 기능을 내장하기도 한다. 간단한 웹 사이트를 구축한다면 웹 서버와 웹 어플리케이션 서버를 구분 지어 사용할 필요는 없다.
- 스위치 - WAS
웹 사이트의 가장 기본적인 구성환경이다. 모든 컨텐츠를 WAS에 모아 놓가 WAS 가 웹 서버와 웹 어플리케이션 서버 역할을 동시에 수행한다. 트래픽이 많지 않고, 간단한 웹 사이트 서비스를 제공하거나, 개발 및 테스트 시스템 구성시 활용하기도 한다.
스위치로 로드밸런싱을 하기 때문에 쉽게 다른 WAS 를 설치하여, 부하를 분산 시킬 수 있는 장점이 있는 반면에, WAS 가 웹서버와 웹 어플리케이션 서버 역할을 동시에 수행하기 때문에 각각의 기능이 다른 기능 수행시 부하를 발생 시킬 수 있기 때문에 성능 저하가 나타날 수 있는 단점을 가지고 있다.
- 스위치 - 웹서버 - WAS
웹 서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도한 형태. 정적인 데이터는 웹 서버가, 동적인 데이터는 WAS 가 담당하게 함으로써 간단한 위의 구조보단 조금더 나은 성능을 발휘 할 수 있다.
- ( 스위치 - 웹서버 - WAS ) + 이미지용 웹 서버
초고속 인터넷이 발달함에 따라 고화질의 이미지나 동영상을 제공하는 페이지가 증가하고 있다. 이러한 페이지는 네트워크 비중의 상당 부분을 차지한다. 그래서 고화질 이미지나 동영상 데이터 제공을 위한 웹 서버를 따로 추가하여, 기존 네트워크 비중도 줄이고, 기존의 웹 서버와 WAS 를 좀 더 효율 적으로 사용할 수 있도록 하는 구성이다.
- 스위치 - 웹서버 - WAS( 프리젠테이션 ) - WAS ( 비지니스 )
이 구조는 2번 구조를 변경한 형태이다. WAS 단의 프로그램들이 많은 비중을 차지할 경우 Presentration Logic 을 담당하는 프로그램과 Business Logic 을 담당하는 프로그램을 구분하여 각각의 WAS 가 처리하도록 분리 시키는 형태이다.
이러한 구조는 계층 구조의 부하를 적절히 분산할 수 있는 반면, 구조가 복잡하져 유지/보수 가 어려워 지는 단점을 가지고 있다.
WAS와 웹서버가 동시에 필요한 이유는 뭘까?
우리가 만드는 웹 페이지는 정적인 컨텐츠만 존재하는 것이 아니라, 동적인 컨텐츠도 함께 노출되게 된다.
WAS가 정적 데이터를 처리로 인해 동적 컨텐츠의 처리가 지연 될 것이고, 이로 인한 페이지 노출 시간이 늘어나게 된다.
WAS는 동적 처리에 최적화 되어 있는 서비스이기 때문에, 처리 속도를 위해, 정적 처리는 웹 서버에서 처리를 하고, 동적 컨텐츠는 WAS 에서 처리하게 된다. 즉 분산 처리를 위한 것이라 볼 수 있다.
사용자가 클라이언트( 브라우저 ) 에 요청을 하게되면 이를 웹 서버에서 반응하여 WAS의 처리를 거쳐 웹페이지로 다시 웹서버에서 클라이언트( 브라우저)에 응답 메시지를 주는 것이다.
웹 서버가 처리할 수 있는 형태로 가공하여 제공해줄 수 있는 웹 어플리케이션 정도랄까?
WAS를 사용하는 이유는 웹 서버에서는 웹 문서만 처리하도록 기능을 분배하여 서버의 부담을 줄이기 위함이라는 것 이라 할 수 있다
반응형'Technique > WEB' 카테고리의 다른 글
HTTP 프로토콜 (0) 2019.09.16 웹 프로그래밍 (0) 2019.09.16 [ 펌 ]HTTP의 새로운 상태 코드: 103 Early Hints (0) 2017.05.11 [ 펌 ] user-agent string 의 역사 (0) 2016.12.30 웹사이트 크롤링과 인덱싱, robots.txt (0) 2016.12.21