클라이언트와 서버의 통신

 

레스토랑에서 여러분은 손님으로서 주문을 합니다.(Ep1 참고) 웹의 관점에서 주문, 즉 요청을 하는 주체를 클라이언트라고 합니다. 주문을 받아서 주문에 맞게 음식을 내어주는 사람은 요리사입니다. 이 역할을 담당하는 부분을 서버라고 합니다. 서버는 특정 서비스를 제공하는 ‘서비스 제공자’의 역할을 하고 클라이언트는 서비스를 요청하는 ‘서비스 소비자’의 역할입니다. 이처럼 클라이언트와 서버는 서로 정보를 주고받는 관계입니다. 

예를 들어 여러분이 노트북으로 구글에 접속한다고 했을 때, 노트북이 클라이언트가 되는 것이고, 스마트폰으로 접속을 한다면 스마트폰이 클라이언트가 되는 것입니다. 조금 더 정확히 말하자면 여러분이 사용하는 기기 내의 ‘웹 브라우저’ 또한 클라이언트입니다. 단지 노트북이 있다 해도 노트북 그 자체로 구글 페이지에 접속할 수는 없죠. 우리는 웹브라우저를 통해 웹사이트에 접속을 합니다. 웹 브라우저란 쉽게 말해 인터넷에 접속하기 위한 소프트웨어인데요, 웹 브라우저가 여러분의 요청을 서버에게 보내고, 서버로 받은 응답 정보를 다시 여러분에게 보여주는 일을 하는 것입니다. 우리가 흔히 사용하고 있는 크롬, 사파리, 엣지(IE), 파이어 폭스 등이 되겠습니다.  

정리하자면 클라이언트가 정확히 의미하는 것은 ‘사용자가 사용하는 기기의 웹 브라우저’인 것입니다. 하지만 통상적으로 사용자가 사용하는 기기를 가리켜 클라이언트라고 하기도 하고, 사용자 자체를 클라이언트라고 부르기도 합니다. (업계에서는 줄여서 ‘클라’로 칭하기도 합니다) 

 

클라이언트와 서버

 

 

다음으로 서버는 무엇일까요? 

 

Ep1에서 우리는 구글 컴퓨터로부터 정보를 제공 받았다고 배웠습니다. 이때 ‘구글 컴퓨터’가 정확히 말하자면 서버입니다. 서버 또한 컴퓨터와 같이 하나의 하드웨어입니다. 우리의 컴퓨터에 브라우저라는 소프트웨어를 설치하는 것과 같이, 서버에도 웹 서버라는 소프트웨어를 설치하여 이 소프트웨어끼리 요청과 응답 통신을 하는 것입니다. 웹 시스템의 규모가 작은 경우 1대의 단일 서버로 존재할 수도 있지만 구글 등 전 세계로 서비스를 제공하는 대형 시스템의 경우 서버가 수백만 대가 모여있는 데이터 센터를 보유하고 있습니다. 구글의 경우 전 세계 대륙별로 데이터센터를 보유하고 있다고 합니다. 즉, 우리는 인터넷을 통해 우리 집 내 방에서 전 세계에 위치하고 있는 구글 서버와 실시간으로 소통하고 있는 것이지요. 

서버 또한 정확히는 물리적인 하드웨어를 가리키지만 서버 내의 웹서버 소프트웨어 또한 서버라고 불립니다. 웹서버란 웹페이지를 사용자에게 제공하는 서버 소프트웨어로 여러분의 요청에 대한  응답하는 역할을 합니다. 즉, 우리가 앞에서 했던 구글 접속 및 검색에 대한 결과를 제공해 준 자의 정체는 바로 웹서버였습니다. 웹서버에는 다양한 종류가 있는데 대표적으로 아파치(Apache), 아이아이에스(IIS), 웹투비(WebToB) 등이 있습니다.    

 

 


 

 

정리

 

1. 클라이언트와는 요청과 응답 통신을 한다.

2. 클라이언트는 서비스를 요청하고, 서버는 서비스를 제공한다.

3. 클라이언트와 서버는 물리적인 기기를 가리키는 표현이기도 하지만 결국 통신의 주체인 소프트웨어 즉, 웹 브라우저와 웹 서버를 가리키는 것이다. 

 

 

To be continued . . .

* 비전공자를 포함한 모두를 대상으로 제가 가진 IT지식을 공유하고자 합니다.

틀린 내용이 있다면 언제든지 지적해 주시면 감사하겠습니다. 🙂 

 

 

Cheers 헤나님이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.