웹 서버 (Web Server)와 웹 어플리케이션 서버 (Web Application Server)

kimjaewon·2023년 4월 26일
0
post-thumbnail

웹 서버(WS)와 웹 어플리케이션 서버(WAS)

서버 - 클라이언트 구조에서 클라이언트는 서버에게 정보를 요청하여 응답받은 결과를 사용하게 되는데
웹 서버, 웹 브라우저가 대표적인 서버 - 클라이언트 관계이다.

여기서 DBMS는 사용자들이 DB안에 데이터에 접근할 수 있게 도와주는 소프트웨어이다.

하지만 위 사진처럼의 형태는 클라이언트 측에 로직이 많아지고 프로그램 크기가 커져 부담이 많이 가는 문제가 있고 로직 변경때마다 배포를 새로 해야하고 로직클라이언트에 포함되어 있어 보안성에도 문제가 있다.

그래서 등장한게 미들웨어

클라이언트DBMS 사이에 로직을 수행해주는 다른 서버를 두는 방식이다.
즉, 클라이언트미들웨어에게 요청만 보내고 미들웨어클라이언트가 부담했던 로직을 수행, 로직 수행 시 데이터 조작이 필요하면 DBMS에게 부탁하고 그 결과를 다시 클라리언트에게 보내준다.
이로써 클라이언트가 해야했던 복잡한 로직이 사라졌고, 프로그램 크기도 작아졌으며 로직 변경때마다 배로해야 했던 번거로움을 해결했다


웹 서버(WS)

WS에서는 웹 브라우저 같은 클라이언트로부터 HTTP 요청을 받고 HTML문서와 같은 웹 페이지를 정적으로 처리해 반환한다.

단순히 저장되어 있는 웹 페이지를 클라이언트로 전달하고, 클라이언트로부터 컨텐츠를 전달받아 저장하거나 처리하는 역할을 담당한다.
(HTML, CSS, JavaScript, 이미지, 비디오, 오디오 파일 등과 같은 정적파일)

인증, 정적 컨텐츠 관리, HTTPS지원, 컨텐츠 압축, 대용량 파일 지원, 가상 호스팅,
Bandwidth Throttling(대역폭 제한:인터넷 서비스를 의도적으로 느리게 하는 것) 등의 기능도 지원함.


웹 어플리케이션 서버(WAS)

WAS와 WS 가장 큰 차이점은 동적 서버 콘텐츠를 수행한다는 것이다. HTTP를 통해 컴퓨터나 장치에 어플리케이션을 수행해주는 미들웨어라고 보면 된다.
웹 서버 + 웹 컨테이너로 웹 상에서 사용하는 컴포넌트를 올려놓고 사용하게 되는 서버이다.
즉, 프로그램 실행 환경과 DB접속기능을 제공하고, 여러 개의 트랜잭션을 관리하며, 요청된 비즈니스 로직을 수행한다.

웹 컨테이너(Web Container)

웹 서버가 보낸 JSP, PHP, ASP, net 등의 파일을 실행하고 수행결과를 다시 웹 서버로 보내주는 역할을 한다.

결국 웹 어플리케이션 서버는 웹 서버에서 요청을 받고, 이를 웹 컨테이너로 보내 로직(알고리즘, DB연결 등)을 수행하고 그 결과를 다시 웹 서버로 보내 최종적으로 클라리언트에게 보내주는 것이다.


효율적인 사용

WS가 하는 일을 WAS로도 전부 가능한데 왜 같이 쓰는 것일까?

기능을 분리하여 서버부하 방지

WASDB조회, 다양한 로직을 수행해야 하기 때문에 정적인 컨텐츠는 웹 서버에서 빠르게 클라이언트에게 제공하는게 좋다.

  • 정적 컨텐츠 요인꺼지 WAS 수행하게 되면 부하가 커지고 동적 컨텐츠 처리가 지연됨에 따라 속도가 느려진다.

보안을 강화 시킨다

SSL 대한 암복호화 처리웹 서버를 사용한다.

  • SSL(결제 페이지, 로그인 양식 등에 사용되는 인증서)

여러 대의 WAS를 연결해 관리(장애 극복 기능)

● 접속량이 많은 대용량 WAS경우 WAS에 문제가 생겨 재시작해야 하는 경우가 생기는데 이때 앞단의 웹 서버에서 WAS를 차단하고 재시작하면 사용자한테는 아무일 없던 듯이 모르고 이용이 가능하다.

  • 규모가 커질수록 웹 서버와 웹앱서버를 분리하는 것이다.
    자원을 이용함에 있어 효율성, 배포 및 유지보수, 편의성을 위해 분리

웹 서비스 구조

  • Client → WS → DB

  • Client → WAS → DB

  • Client → WS → WAS → DB


참조

https://binux.tistory.com/32
.
https://velog.io/@juejue/Web-Web-Server-vs-Web-Application-Server-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-%EC%9B%B9-%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%EC%84%9C%EB%B2%84

profile
올라가자

0개의 댓글