Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

나나나

[네트워크]웹서버와 WAS 본문

CS

[네트워크]웹서버와 WAS

Leenk 2021. 5. 31. 23:06

웹 서버(Web Server)

  • 소프트웨어 혹은 웹 서버 소프트웨어가 동작하는 컴퓨터를 일컫는다.
    • 소프트웨어 : 웹 브라우저로부터 HTTP요청을 받아 정적인 컨텐츠를 제공하는 컴퓨터 프로그램
  • 웹 서버의 가장 중요한 기능은 클라이언트가 요청하는 HTML 문서와 각종 리소스의 전달하는 것이다.
  • 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적 데이터 혹은 동적인 결과가 될 수 있다.
    • 웹 크롤러도 브라우저처럼 웹 서버에 HTTP에 맞도록 리소스를 요청하고 웹 서버는 요청한 리소스를 반환함
    • 정적 데이터 : HTML 문서, 이미지, CSS, Javascript 와 같이 컴퓨터에 저장되어 있는 파일
    • 동적인 결과 : 웹 서버에 의해서 실행되는 프로그램을 통해 만들어진 결과물

종류

  • Apache, Nginx, Microsoft IIS
  • Apache 웹 서버는 오픈소스 소프트웨어로 거의 대부분의 운영체제에서 설치 및 사용가능하다.
  • Nginx는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 오픈소스 소프트웨어이다.

WAS(Web Application Server)

  • 일종의 미들웨어로 웹 클라이언트의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가진다.
  • DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공한다.

 

등장 배경

1. DBMS

  • 다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어
  • DBMS는 보통 서버 형태로 서비스를 제공하여 DBMS에 접속하여 동작하는 클라이언트 프로그램이 많이 만들어졌다.
  • 그로 인해 클라이언트 측의 로직이 복잡해지고 크기가 커지는 문제가 발생했다. 프로그램 로직 변경 시 클라이언트가 매번 배포 되어야 하고, 대부분의 로직이 클라이언트에 포함되어 보안의 위험성도 있었다.

2. 미들웨어

  • DBMS에 직접 클라이언트가 연결되어 동작하는 방식의 문제점을 해결하기 위해 등장
  • 클라이언트와 DBMS 사이에 또 다른 서버를 두는 방식
  • 클라이언트는 단순히 요청만 중앙에 있는 서버(미들웨어)에 보내고 미들웨어에서 대부분의 로직을 수행한 뒤, 그 결과를 클라이언트에게 전송하는 방식

3. WAS

  • 최초의 웹이 등장했을 때의 웹 브라우저는 정적인 데이터만 사용함.
  • 웹이 널리 사용되면서 데이터를 입력하고 조회하는 등 동적인 기능이 요구됨.
  • 동적인 기능은 프로그래밍을 통해서 가능했고, 웹 서버에서 프로그래밍 기능이 동작하는 것을 CGI라고 부름
  • 웹이 점점 복잡해지고, DBMS와 연관된 복잡한 기능이 요구됨 -> 브라우저와 DBMS 사이에서 동작하는 미들웨어인 WAS의 등장
  • Tomcat, JBoss, Jeus, Web Sphere

 

WAS의 기능

  • 프로그램 실행 환경과 데이터베이스 접속 기능 제공
  • 여러 개의 트랜잭션 관리
  • 업무를 처리하는 비즈니스 로직 수행
  • 웹 서버의 기능 포함

웹 서버와 WAS

  • 웹 서버는 정적인 콘텐츠를 웹 브라우저에게 전송
  • WAS는 프로그램의 동적인 결과를 웹 브라우저에게 전송
  • 웹 서버가 WAS보다 간단한 구조이며 WAS가 발달하여 WAS의 내장 웹 서버의 기능은 성능 상 큰 차이 없음
  • 자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 분리
    • 정적인 파일은 웹 서버에서 빠르게 보내고, 동적인 부분만 WAS에서 처리 -> 기능을 분리로 서버의 부담을 줄일 수 있음
    • 만약 WAS에서 전부 처리한다면? : 부하가 커지고, 동적 컨텐츠의 처리 지연으로 인해 페이지 노출 시간이 늘어날 수 있음

 

웹 서버 웹 애플리케이션 서버
정적 콘텐츠 동적 콘텐츠
HTTP 프로토콜을 통해서만 전달 HTTP를 포함한 여러 프로토콜을 사용하여 비즈니스 로직 제공
웹 기반 애플리케이션만 제공 웹 및 엔터프라이즈 기반 애플리케이션에 제공
멀티 스레딩 지원 안 함 멀티 스레딩을 사용해 여러 요청을 병렬로 지원

 


참고하기 좋은 블로그

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io