Backend/Web

[Web] 웹의 기본 동작 방식(1) - 서버, 클라이언트, HTTP

소냐. 2024. 3. 8. 01:39

 

 

NAVER 웹 사이트에 들어가게 되면, 당연히도 NAVER 메인화면을 보게 됩니다.

그리고 그 속에서 로그인, 메일 작성, 기사 열람 등 다양한 기능을 사용할 수 있죠.

이 당연한 것들이 실제 WEB세계에서는 어떻게 동작하는 걸까요?

 

오늘은 Web이 기본적으로 어떻게 동작하는지 그 방식에 대해 알아보겠습니다.

 

📌 웹 서버(Web Server)와 웹 클라이언트(Web Client)

먼저 Web의 동작방식을 알아보기 위해서는 서버와 클라이언트 개념에 대한 이해가 필요합니다.

 

1. 웹 서버(Web Server)란?

'서비스(Service)'란 클라이언트의 요청에 대해 알맞은 내용을 제공해주는 것을 말하는데요.

'웹 서버(Server)'란 그러한 서비스를 제공하는 프로그램입니다. 즉, 클라이언트의 요청에 대한 응답을 보내주는 프로그램이라고 할 수 있습니다.

 

 

2. 웹 클라이언트(Web Client)란?

클라이언트는 서버와는 상대되는 개념으로 어떤 서비스를 요청하는 고객을 의미합니다. 서비스 사용자라고 이해해도 무리가 없습니다.

'웹 클라이언트(Web Client)'는 웹 서버에 자료를 요청하는 고객이라고 할 수 있습니다.

웹 클라이언트는 디바이스 장치(노트북, 스마트폰, 태블릿 등)가 될 수 있고,

이러한 장치에서 동작하는 웹 클라이언트 프로그램을 '웹 브라우저'라고 합니다. 

웹 브라우저는 크롬, 사파리, Edge 등과 같은 프로그램이 있습니다.

 

 

 

 

웹 클라이언트웹 브라우저에서 발생하는 특정한 행위웹 서버요청(Request)합니다.

웹 서버는 클라이언트 요청에 대해 응답(Response)합니다.

 

ex)

노트북(웹 클라이언트)에서 크롬(웹 브라우저)을 이용해 네이버 주소를 검색(행위)함으로써 웹 서버에 네이버 웹사이트를 달라고 요청(Request)합니다.

그럼 인터넷을 통해 클라이언트의 요청이 웹 서버에 전달되고,

'네이버 웹사이트 HTML' 파일을 응답(Response)해주면 해당 파일이 웹 브라우저에 표시되어 우리는 네이버 메인 화면을 볼 수 있는 것입니다.

 

3. 클라이언트와 서버의 관계

클라이언트와 서버의 개념은 요청을 하느냐, 응답을 하느냐로 나뉠 수 있습니다.

사실 Web상에서는 무수히 많은 요청과 응답이 이루어지고, 이러한 관계를 무조건 앞에서 살펴봤던 웹 클라이언트 - 웹 서버에만 적용시킬 수 있는 것은 아닙니다.

웹 서버 측에서도 파일을 주고 받는 처리를 하면서 클라이언트-서버 관계가 생길 수 있습니다.

즉, 요청을 누가 하고 응답을 누가 하느냐에 따라 상대적으로 결정되는 관계입니다.

주로 n:1(클라이언트:서버)로 이루어지며 서버는 여러 개의 클라이언트 측의 요청에 대한 응답을 한다라는 개념을 잘 이해하고 넘어가면 됩니다.

 

📌  HTTP 란?

 

위 그림을 보면 클라이언트와 서버가 주고받은 요청과 응답은 HTTP요청과 HTTP응답입니다.

그렇다면 HTTP가 무엇일까요?

HTTP는 Hyper Text Transfer Protocol의 약자로,

터넷상에서 데이터를 주고 받기 위한 서버-클라이언트 모델을 따르는 프로토콜입니다.

 

그럼 다시 프로토콜에 대해서 알아야겠죠? 

프로토콜은 컴퓨터 내부 혹은 사이에서 데이터가 교환 되는 방식을 정의하는 규칙 체계입니다.

기기 간 원활한 통신을 위해 데이터가 교환되는 형식을 합의하에 정하였는데 이 형식을 정의하는 규칙의 집합이라고 할 수 있습니다.

 

이제 HTTP를 더 풀어서 설명하면

서버와 클라이언트 사이에서 데이터를 주고 받는 형식에 대한 규칙입니다.

 

HTTP와 관련된 개념들은 깊이 들어갈수록 아주 많은데, 여기서는 글의 내용을 벗어날 수 있으니 이렇게 간단하게만 설명하고 넘어가도록 하고, 추후에 자세히 다루겠습니다.

 

📌 웹의 기본 동작 방식과 순서

그렇다면 앞에서 설명했던 개념들과 더불어 사용자가 웹을 사용하며 요청을 했을 때, 어떻게 응답이 돌아오는지 뒷 단의 흐름에 대해 알아보겠습니다. 클라이언트의 요청이 들어왔을 때 서비스는 어떻게 처리될까요?

다음은 웹 브라우저를 통해 웹 사이트에 접속하여 원하는 웹 페이지를 가져오는 과정을 도식화한 그림입니다.

번호를 순서대로 따라가보겠습니다.

출처 : https://www.tcpschool.com/webbasic/works

 

사용자(클라이언트)가 웹 브라우저를 통해 찾고 싶은 웹 페이지의 URL 주소를 입력합니다.

② 입력된 URL 주소가 HTTP 프로토콜에 의해 전송됩니다.

사용자가 입력한 URL 주소 중에서 도메인 네임을 DNS 서버에서 검색합니다.

④ DNS 서버에서 해당 도메인 네임에 해당하는 IP 주소를 찾아 사용자가 입력한 URL 정보와 함께 전달합니다.

⑤ 웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청메세지를 생성합니다.

⑥ 생성된 HTTP 요청 메세지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송됩니다.

⑦ 이렇게 도착한 HTTP 요청 메세지는 HTTP 프로토콜을 사용하여 웹 페이지 URL 정보로 변환됩니다.

웹 서버는 도착한 웹 페이지 URL 정보에 해당하는 데이터를 검색합니다.

⑨ 검색된 웹 페이지 데이터는 또 다시 HTTP 프로토콜을 사용하여 HTTP 응답 메세지를 생성합니다.

이렇게 생성된 HTTP 응답 메세지는 TCP 프로토콜을 사용해 인터넷을 거쳐 원래 컴퓨터로 전송됩니다.

⑪ 도착한 HTTP 응답 메세지는 HTTP 프로토콜을 사용하여 웹 페이지 데이터로 변환됩니다.

⑫ 변환된 웹 페이지 데이터는 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됩니다.

 

 

 

Web 의 동작 방식을 자세히 들여다보니 굉장히 많은 단계를 거쳐 이루어지게 되는 것을 알 수 있습니다.

이 중에서 앞서 설명한 개념을 통해서는 파란 글씨로 표현한 단계만을 대략적으로 이해할 수 있을 것 같습니다.

그럼 여기서 도메인 네임이 무엇인가? DNS가 무엇인가? TCP 프로토콜을 무엇인가?

다양한 궁금증이 생기게 됩니다.

 

이와 관련해서는 다음 포스팅을 통해 알아보겠습니다.

 

 

📌 마무리

해당 포스트를 통해서는

웹 클라이언트, 웹 브라우저, HTTP, 웹 서버 사이의 개념과 관계에 대해 배울 수 있었습니다.

 

동작 과정을 간단하게 정리해보면 다음과 같습니다.

1. 웹 클라이언트는 웹 브라우저를 통해 웹 서버에게 데이터를 요청합니다.

2. 이 때 데이터는 HTTP라는 프로토콜을 기반으로 교환됩니다.

3. 웹 서버는 요청에 대한 알맞은 데이터를 응답합니다.

4. 응답한 결과가 웹 브라우저에 출력되어 사용자가 볼 수 있습니다.

 


 

728x90