전산직으로 살아남기

웹서버과 WAS의 차이 본문

Security/Application

웹서버과 WAS의 차이

케이마 2024. 5. 20. 13:40
728x90
반응형

1. 웹서버란?

  • 웹 서버(소프트웨어): 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램
  • 웹 서버(하드웨어): 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터

 

2. WAS(Web Application Server)란?

WAS는 웹 브라우저와 같은 클라이언트로부터 웹 서버가 요청을 받으면 애플리케이션에 대한 로직을 실행하여 웹 서버로 다시 반환해 주는 소프트웨어입니다. 웹 서버와 DBMS 사이에서 동작하는 미들웨어로써, 컨테이너 기반으로 동작합니다.

 

3. 웹서버와 WAS의 동작 과정

웹서버와 WAS의 동작 과정
웹서버와 WAS의 동작 과정

 

4. 웹서버와 WAS의 차이

웹 서버의 경우는 정적 컨텐츠(HTML, CSS, IMAGE 등)를 요청받아서 처리하고, WAS의 경우는 동적인 컨텐츠(JSP, ASP, PHP)를 요청받아 처리합니다.

 

5. 웹서버와 WAS를 나눠야 하는 이유

사실 WAS의 경우 웹 서버 + 웹 컨테이너의 개념이라 웹 서버가 없더라도 웹 서버의 역할을 동시에 수행할 수 있습니다. 그래서 웹 서버를 사용하지 않더라도 웹 서비스를 할 수는 있습니다. 그러나 현장에서는 웹 서버와 WAS를 나눠서 사용합니다. 그 이유는 아래와 같습니다.

 

1) 데이터 처리 방식

웹 서버는 정적인 컨텐츠를 처리하고 WAS는 동적인 컨텐츠를 처리합니다. 만약 WAS가 정적 데이터를 처리하게 되면, 동적 컨텐츠의 처리가 지연될 것이고 이로 인한 페이지 노출시간이 늘어나게 됩니다.

 

2) 보안

동작 과정 상 사용자에게 요청은 웹 서버가 받고, 그 요청을 웹 서버가 WAS에 전달합니다. 만약에 WAS에 바로 요청할 경우 WAS는 DB에 대한 접속 정보가 있기 때문에 외부로 노출될 경우 보안 상 문제가 될 수 있습니다.

 

6. 웹서버와 WAS의 종류

  • Apache
    Apache는 소프트웨어 단체 이름입니다. 그리고 우리가 흔히 부르는 아파치 서버는 이 재단에서 후원하는 오픈소스 프로젝트 커뮤니티에서 개발한 http 웹서버를 말합니다.
  • tomcat
    tomcat은 흔히 WAS라고 말합니다. java로 웹 서비스를 구축한다면 주로 apache와 tomcat을 사용합니다.
  • IIS
    IIS(Internet Information Services)는 마이크로소프트 윈도우를 사용하는 서버들을 위한 인터넷 기반 서비스들의 모임입니다. 웹서버로 이해하면 되며 세팅을 통해 WAS로도 사용할 수 있습니다. ASP로 웹 개발을 한다면 MS 서버에 IIS만 세팅하여 웹 서비스를 구현할 수 있습니다.
  • Nginx
    Nginx(엔진 X라고 읽음)는 대용량 트래픽을 처리하기 위해 가벼움과 높은 성능을 목표로 하는 경량 웹 서버입니다. 초기에는 정적 파일을 제공하는 웹 서버로 Apache를 보조하는 역할을 수행하였지만 오늘날에는 리버스 프록시, 로드 밸런서, 메일 프록시 및 HTTP 캐싱 등 전체 범위의 서버 작업을 처리하는 웹 서버로 발전하였습니다. 각 웹 서버의 차이점을 간단하게 정리하면 아래와 같습니다.
    - Nginx: 이벤트 중심 접근 방식으로 하나의 스레드에서 여러 요청을 처리
    - Apache: 프로세스 기반 접근 방식으로 하나의 스레드가 하나의 요청을 처리

 

출처

 

WAS(Web Application Server)란?

#37 지난 포스팅은 Web 서버에 대해서 포스팅했었습니다. 이번에는 Web 서버와 뗄레야 뗄 수 없는 WAS에 대해서 포스팅을 해보고자 합니다. 1. WAS(Web Application Server)란? 웹 브라우저와 같은 클라이언

goldsony.tistory.com

 

728x90
반응형

'Security > Application' 카테고리의 다른 글

REST API 이해하기  (0) 2024.06.05
Proxy Server 이해하기  (0) 2024.05.24
IIS Log 분석하기  (0) 2024.05.13
GET, POST 이해하기  (0) 2024.04.22
SSL과 인증서 구조  (0) 2024.04.17