[Web] 웹 서비스의 동작원리

rara_kim·2022년 8월 18일
0

기타

목록 보기
3/4

브라우저를 통해 웹사이트에 접속하였을 때 내부적으로 서버에서는 어떤 동작이 일어나고, 웹 데이터의 흐름은 어떻게 흘러가는 것일까?

Web 동작 방식

간단하게 표현하면 이렇다.
클라이언트가 서버에 요청을 보내면 서버는 해당 요청에 대해 응답한다.

클라이언트와 서버 두 가지 요소만으로 웹이 동작하는 것이 아니라 그 밖의 다른 요소들과의 요청(Request)과 응답(Response)이 이루어지며 데이터를 받아온다.

예를 들어 레스토랑에서 손님이 주문을 한다고 가정 해보자.
손님은 종업원에게 스테이크를 주문하고 종업원은 요리사에게 주문서를 통해 주문내용을 전달한다.
그러면 요리사는 레시피에 맞게 조리하여 종업원에게 완성된 스테이크를 전달하고, 종업원은 손님에게 맛있는 스테이크를 대접한다.

여기서 종업원을 웹 클라이언트, 요리사를 웹 서버라고 본다면 다음과 같이 이해해볼 수 있다.

손님(사용자)의 스테이크(페이지) 주문을 확인한 종업원(클라이언트)이 요리사(서버)에게 요청(Request)을 보내면, 요리사(서버)는 해당 요청(Request)에 대해 응답(Response)한다.


Web 동작에 필요한 요소들

웹 클라이언트(Web Client)

웹 클라이언트는 사용자가 웹에 접근하는 프로그램을 말한다.
우리가 사용하는 대부분의 웹은 브라우저에서 실행되기 때문에 일반적으로 Chrome등의 웹 브라우저를 웹 클라이언트라고 한다.

브라우저 주소창에서 https://velog.io/@rara_kim라고 입력하고 엔터키를 누르면, 클라이언트(브라우저)는 사용자로부터 받은 URL에 대한 정보를 찾아 HTTP 메시지형태로 서버에 요청(Request) 한다.

웹 서버(Web Server)

웹 서버는 웹 페이지, 사이트 또는 앱을 저장하는 프로그램을 말한다.

서버는 클라이언트에서 요청한 HTT메시지를 확인한 후, 이에 맞는 데이터를 처리한 뒤에 다시 클라이언트에서 응답(Response)한다. 예를 들어 클라이언트에서 https://velog.io/@rara_kim 블로그의 메인 페이지를 보내달라고 요청을 보내면, 서버에서는 이 요청을 확인하고 페이지를 만드는데 필요한 HTML, CSS, JS, Image등을 가져와 클라이언트에게 보내준다.

대표적인 웹 서버로는 아파치 웹 서버(Apache Web Server), GWS, IIS등이 있다.


WAS(Web Application Server)

웹 서버만으로 모든 로직을 수행한다면 과부하가 일어날 수 있기 때문에 서버를 돕는 조력자역할을 한다.

WAS는 웹 어플리케이션 서버라는 이름에서 보이듯이 사용자 컴퓨터나 장치에 웹 어플리케이션을 수행해주는 미들웨어를 일컫는다.
종류로는 아파치 톰캣(Apache Tomcat), 레진(Resin), 제이런(JRun) 등이 있다.

클라이언트에게 메시지를 받으면 서버는 요청에 필요한 페이지의 로직이나 데이터베이스의 연동을 위해서 WAS에 이들의 처리를 요청한다. 그러면 WAS는 이 요청을 받아와 동적인 페이지 처리를 담당하고 DB에서 데이터 정보를 받아온다. 이렇게 WAS는 DB와 연동하여 데이터를 처리한 뒤, 생성한 파일을 다시 서버에게 반환한다.

WAS의 등장으로 웹 서버의 할 일을 분배하여 서버의 부담을 줄일 수 있고, 빠르게 동적 컨텐츠를 처리할 수 있게 되었다.

DB(Database)

데이터의 정보를 저장하는 곳으로 WAS에서 데이터를 요청하면 필요한 데이터를 응답한다.

WAS에서 로직을 수행하다가 DB접근이 필요하면 SQL질의를 통해 데이터를 요청하고, 요청받은 DB는 동적인 페이지 처리를 담당하고, 다시 WAS에 데이터를 보내는 응답을 한다.
즉, WAS는 DB와 연동하여 해당 내용을 저장하도록 요청하고, DB는 그 내용을 정리하여 저장한다.


📚참고
[Web]그림으로 알아보는 웹 - 1편 웹의 동작 원리

profile
느리더라도 꾸준하게

0개의 댓글