서버와 클라이언트는 웹을 포함한 인터넷에서 동작하는 모든 서비스들을 구성하고 있는 가장 큰 틀의 뼈대이므로 중요한 개념입니다.
클라이언트는 고객, 갑이라는 뜻이 있고, 서버는 을이라는 뜻을 가지고있습니다.
클라이언트는 데이터를 요청하는 노트북, 데스크탑, 스마트폰 등이 될 수 있고,
서버는 다수의 클라이언트로부터 요청을 받아 요청받은 데이터를 클라이언트에 응답해주는 컴퓨터라고 볼 수 있습니다.

즉, 클라이언트는 서버에 요청하고, 서버는 클라이언트에 응답하는 관계입니다.
이제 웹상에서 클라이언트 서버가 어떻게 동작하는지 알아보겠습니다.

우선 구조부터 알아보겠습니다.
클라이언트 컴퓨터에는 하드웨어 즉, 기계 자체가 있고, 그 위에 운영체제가 설치되어 있습니다.
그리고 운영체제위에 웹브라우저라고하는 웹클라이언트가 설치되어있습니다.
서버도 마찬가지로 하드웨어위에 운영체제가 설치되어있고, 그위에 HTTP통신을 지원하는 웹서버라는 소프트웨어가 설치되어있습니다.
웹서버와 웹브라우저가 동작하는 프로세스를 알아보겠습니다.
클라이언트가 웹브라우저를 실행 시키고 주소창에 http://a.com/index.html 라는 도메인(url)을 입력하면 웹브라우저 -> 운영체제 -> 하드웨어를 거쳐 하드웨어에 설치되어있는 LAN카드나 무선장치와 같은 통신카드에 접속한 후 서버에 전달됩니다.
중간에있는 DNS 서버는 도메인에 대한 인풋을 IP로 반환하고, 반환 받은 IP는 서버의 위치입니다.
요청을 받은 서버는 통신카드 -> 하드웨어 -> 운영체제 -> 웹서버에게 전달해주고 웹서버는 서버 컴퓨터에있는 index.html 파일을 찾아 DB관련 처리 등 클라이언트가 요청한 페이지 처리를하여 다시 클라이언트에게 웹브라우저에서 동작하는 소스파일을 응답해줍니다.
응답을 받은 클라이언트는 다시 통신카드 -> 하드웨어 -> 운영체제 -> 웹브라우저에게 전달해주고 웹브라우저는 전달받은 소스파일을 웹브라우저 엔진에서 Dom 파싱을 한 후 css,js,이미지 파일 등 관련파일을 요청하고 렌더파싱을 진행하여 화면에 그리고 자바스크립트엔진은 필요시 사용할 수 있게 대기하는 프로세스로 진행됩니다.
여기서 클라이언트가 요청하고 서버가 응답한 HTML이란 무엇일까요?
HTML은 웹페이지에 이미지, 링크등을 포함시키고 웹페이지를 꾸미는 등 웹페이지를 더욱 풍부하게 만들기 위해 고안된 문서 형식입니다.
그럼 웹개발자란 어떤일을 하는 것 일까요?
웹개발자는 HTML등의 문서를 주고 받는 네트워크 통신환경인 World Wide Web에서 동작하는 프로그램을 짜는 개발자를 말합니다.
웹개발자에는 프론트앤드 개발자와 백앤드개발자로 나뉘는데요.
프론트앤드(클라이언트)는 말그대로 사용자가 보는 화면을 말합니다.
사용 언어로는 웹페이지를 이루는 골격인 html, 웹페이지를 꾸미기위한 css, 동적인 웹페이지를 만들기위한 js가 있습니다.
백앤드(서버)는 사용자가 보는 화면이 아닌 데이터를 핸들링하는 것을 말합니다.
사용 언어로는 js, java, go, php, python, kotlin, SQL 등 다양하게 있습니다.
'Web' 카테고리의 다른 글
WebBrowser (0) | 2021.12.17 |
---|---|
HTTP (0) | 2021.09.26 |
Web (0) | 2021.09.13 |