본문 바로가기

Tech

웹 서버, 웹 어플리케이션 서버

요즘 제가 지금까지 실무에서 다룬 기술/용어들을 정리하는 즐거움에 빠졌습니다. 😀

오늘은 웹 서버와 웹 애플리케이션 서버에 대해 정리해보겠습니다.


웹 서버

웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고,
HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램 - 위키피디아

웹 서버는 정의가 명확해서 이해하기 쉬운 것 같습니다!

서버가 사용자로부터 HTTP 요청을 받아서 정적 콘텐츠(일반적으로 HTML, CSS, JS, Image 등)을 응답하면

'그 서버는 웹 서버로써 동작하고 있다.' 라고 생각하면 됩니다.


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

웹 애플리케이션 서버는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 
소프트웨어 프레임워크이다.
인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어
(소프트웨어 엔진)로 볼 수 있다.
웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행이 된다.

뭔가 웹 서버보다는 설명이 길어서 살짝 이해하기 어렵네요..

하지만 위키백과에 '웹 애플리케이션의 정확한 정의는 존재하지 않아서'라고' 라고 적혀있듯이 WAS의 정확한 정의는 없습니다.

저는 서버가 사용자로부터 HTTP 요청을 받아서 동적 콘텐츠를 응답하면

'그 서버는 웹 어플리케이션 서버로써 동작하고 있다.'로 두 개를 구분했습니다.

 

그러면 결국 HTTP 요청에 대해 '동적 콘텐츠를 응답하냐 정적 콘텐츠를 응답하냐'의 차이네요!

그러면 동적 컨텐츠와 정적 콘텐츠가 무슨 차이인지 구분하는 게 이해해 도움이 될 것 같습니다.


여러분은 어떻게 두 컨텐츠를 구분하시나요?

저는 막연히 HTML, CSS, JS, Image는 정적 콘텐츠~ JSON은 동적 콘텐츠~라고 생각했었습니다. 😁

근데 단순히 컨텐츠의 형식이 정적/동적을 구분하는 기준은 아닌 것 같습니다.

 

여러 블로그를 돌아다니면서 제가 찾은 가장 좋은 기준은

요청의 속성(누가, 언제, 어떻게)에 따른 변화 여부.

입니다. 

 

요청에 대해 HTML을 응답하더라도 누가 요청했냐에 따라 다르게 응답하면 동적 콘텐츠를 응답하는 거고..

JSON을 응답하더라도 항상

{ "answer": "반가워! 나는 이후성이야!" }

이렇게 똑같이 응답하면 정적 컨텐츠를 응답하는 거죠!


이제 어느정도 개념이 이해되셨나요?

정리하고 나서 제가 만드는 웹 서비스를 보니 Web Server와 Web Application Server의 역할을 동시에 수행하고 있네요.. 그러면서 인스턴스 이름은 API Server.. 😂

사실 하나의 서버가 두 역할을 동시에 수행해도 큰 문제는 없습니다. 엄밀하게 나누지는 않는 것 같아요.

 

https://victorydntmd.tistory.com/121

이 분이 정리해주신 글에 보면 WAS에서 웹 서버를 분리해서 얻는 이점은 2가지입니다.

  • 정적인 콘텐츠를 제공하며 생기는 부하가 WAS에 가해지는 것을 막기 위해.

  • WAS의 설정 파일을 외부에 직접적으로 노출하지 않기 위해 
잘못된 서술과 인용, 오류 지적, 비판은 항상 환영입니다!
편하게 댓글로 남겨주세요!

'Tech' 카테고리의 다른 글

프로토콜(Protocol)이란?  (0) 2020.10.16