[Network] 웹 서버와 WAS, 클라이언트와 서버 이해

웹 서버란?

웹 서버는 소프트웨어(Software)를 보통 말하지만, 웹 서버 소프트웨어가 동작하는 컴퓨터를 말한다.

웹 서버의 가장 중요한 기능은 클라이언트(Client)가 요청하는 HTML 문서나 각종 리소스(Resource)를 전달하는 것이다. 즉 웹 서버는 클라이언트로부터 요청을 받아, 요청한 것을 넘겨주는 일을 한다. 만약 요청한 것이 서버에 없다면 또는 있다고 해도 주소가 틀려 다른 곳에 있어 서버가 찾지 못한다면 "404 Not Found" 메시지가 뜬다. 이 메시지의 의미는 "요청한 자료를 서버에서 찾을 수 없습니다" 이다.

웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적(static)인 데이터이거나 동적인 결과가 될 수 있다. 정적인 데이터는 HTML, 그림, 소리, 파일 등을 의미 한다. 즉 변하지 않는 데이터 이다. 

 

웹 서버 소프트웨어의 종류

가장 많이 사용하는 웹 서버는 Apache, Nginx, Microsoft IIS

Apache웹 서버는 Apache Software Foundation에서 개발한 웹서버로 오픈소스 소프트웨어(Open-source Software)이며, 거의 대부분 운영체제에서 설치 및 사용을 할 수 있다.

Nginx는 차세대 웹서버로 불리며 더 적은 자원으로 더 빠르게 데이터를 서비스하는 것을 목적으로 만들어진 서버이며 Apache웹 서버와 마찬가지로 오픈소스 소프트웨어 이다.

 

 


 

 

클라이언트/서버 구조

클라이언트(Client)는 서비스(Service)를 제공하는 서버(Server)에게 정보를 요청하여 응답 받은 결과를 사용한다.

 

클라이언트 서버 통신

웹 클라이언트는 사용자가 서버에 요청을 보낼 수 있는 기능을 제공한다. 요청을 보내고 난 다음, 서버가 보내온 요청의 결과를 화면에 출력하는 일도 클라이언트의 역할이다. 클라이언트라는 용어는 사용자라는 사람 또는 브라우저라는 응용프로그램을 뜻하기도 한다. 

브라우저(Browser)는 서버랑 통신하는 explorer, chrome, Mozilla 와 같은 소프트웨어를 말한다. 브라우저의 주된 역할은 HTML 코드를 읽어서(파싱) 화면에 보이는 것이다. 

클라이언트는 사용자, 브라우저 둘다 의미하기 때문에 구분하지 않는다. 총칭해서 사용자가 요구한 대로 동작하는 웹 브라우저라는 뜻으로 이해하면 된다.

 

 

DBMS (DataBase Management System)

다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어입니다.

 

 

 

 

미들웨어 (MiddleWare)

클라이언트 쪽에 비즈니스 로직이 많을 경우, 클라이언트 관리(배포 등)로 인해 비용이 많이 발생하는 문제가 있습니다.

비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 합니다.

 

 

 

 

WAS (Web Application Server)

WAS는 일종의 미들웨어로 웹 클라이언트(보통 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가집니다.

 

 

 

웹 서버 vs WAS

WAS도 보통 자체적으로 웹 서버 기능을 내장하고 있습니다.

현재는 WAS가 가지고 있는 웹 서버도 정적인 콘텐츠를 처리하는 데 있어서 성능상 큰 차이가 없습니다.

규모가 커질수록 웹 서버와 WAS를 분리합니다.

자원 이용의 효율성 및 장애 극복, 배포 및 유지보수의 편의성을 위해 웹서버와 WAS를 대체로 분리합니다.

 

 

 

참고: Head First Servlets & JSP / 한빛미디어

출처 : https://www.edwith.org/boostcourse-web

댓글

Designed by JB FACTORY