본문 바로가기
개발/브라우저와 네트워크

웹서버와 앱서버의 차이

by 안뇽! 2021. 9. 9.
반응형

먼저 stactic pages 와 dynamic pages의 차이를 알아야 한다.

Static Pages

  • image, html, css, javascript 와 같이 컴퓨터에 저장되어 있는 파일들
  • 웹 서버에서 요청에 알맞은 파일을 변환하며 핫앙 동일한 페이지를 반환.
  • 웹 서버에서 제공한다.

Dynamic Pages

  • 들어온 요청에 맞게 동적으로 만들어진 컨텐츠를 의미
  • 데이터베이스, 서버 내 로직 등을 활용해 만들어진 컨텐츠를 반환
  • 웹 어플리케이션 서버에서 제공

https://www.svennd.be/rethinking-dynamicstatic-pages/

웹 서버

HTTP 요청을 받아 Static contents를 제공하는 서버,프로그램이다.

  • 정적인 컨텐츠 제공 : WAS(앱서버)를 거치지 않고, 바로 요청한 컨텐츠를 제공할 수 있다.
  • 동적인 컨텐츠 제공을 위한 요청 전달 : 요청을 WAS 에 보내고 WAS가 처리한 결과를 클라이언트에게 전달한다.

Foward Proxy

사용자가 google.com에 연결하려고 하면 사용자 PC가 직접 연결하는게 아니라 Forward proxy 서버가 요청을 받아 google.com에 연결하고 그 결과를 클라이언트에게 전달(forward) 해 준다.


대개 캐슁 기능이 있으므로 자주 사용되는 컨텐츠라면 월등한 성능 향상을 가져올 수 있으며 정해진 사이트만 연결하게 설정하는 등 웹 사용 환경을 제한할 수 있으므로 보안이 중요한 기업 환경에서 많이 사용한다.

https://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html

Reverse Proxy

리버스 프락시로 웹 서버를 설정할 경우 사용자가 example.com 웹 서비스에 데이타를 요청하면 Reverse Proxy 는 이 요청을 받아서 내부 서버(보통 WAS)에서 데이타를 받은후에 이 데이타를사용자에게 다시 전달한다.

https://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html

Reverse Proxy 의 장점은 보안이다.

보통 기업의 네트워크 환경은 내부 네트워크와 외부 네트워크 사이에 위치하는 비무장지대(DMZ) 구간이 존재한다.

https://www.lesstif.com/system-admin/forward-proxy-reverse-proxy-21430345.html

위 그림처럼 서비스를 제공하는 서버(메일, 웹, DNS서버)를 배치하고 네트워크는 1,2,차 방화벽으로 보호한다.

 

DMZ존에 웹 서버를 두고 리버스 프락시로 설정하고, WAS(앱서버)는 내부망에 위치시키게 설정한다.

 

리버스 프락시로 동작하는 웹 서버만 내부 WAS와 연결하도록 설정하므로 웹 서버가 해킹당해도 2차 방화벽을 다시 뜷어야 하므로 더 보안에 강해질 수 있다.

 

앱 서버(Web Application Server,WAS)

웹서버와 앱은 서로가 서로를 알지 못한다. 앱서버는 가운데서 웹서버와 앱의 중간다리 역할을 한다. Tomcat, JBoss등이 이에 해당한다.

 

DB조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 서버이다.


HHTP를 통해 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어(소프트웨어 엔진) 이다.

  • WAS의 역할
    • WAS = Web Server + Web Container
    • Web Server 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 제시되었다.
      • 분산 트랜잭션, 보안, 메시징, 쓰레드 처리 등의 기능을 처리하는 분산 환경에서 사용된다.
      • 주로 DB 서버와 같이 수행된다.
    • 현재는 WAS가 가지고 있는 Web Server도 정적인 컨텐츠를 처리하는 데 있어서 성능상 큰 차이가 없다.

 

  • WAS의 주요 기능
    • 프로그램 실행 환경과 DB 접속 기능 제공
    • 여러 개의 트랜잭션(논리적인 작업 단위) 관리 기능
    • 업무를 처리하는 비즈니스 로직 수행

 

  • WAS 예 : Tomcat, JBoss, Jeus, Web Sphere 등
반응형

'개발 > 브라우저와 네트워크' 카테고리의 다른 글

Location header  (0) 2021.10.23
CSR과 SSR  (0) 2021.09.29
URL:QueryString과 Params  (0) 2021.09.26
웹의 동작 원리  (0) 2021.09.25
HTTP cache  (0) 2021.09.24