728x90
반응형

클라이언트와 서버

클라이언트: 웹 사용자의 인터넷이 연결된 장치들과 이런 장치들에서 사용 가능한 크롬 같은 웹 브라우저

서버:  웹페이지, 사이트, 앱 등을 저장하는 컴퓨터

클라이언트와 서버

웹 -> 도로
클라이언트 -> 우리의 집
서버 -> 상점
라고 생각하고 생각하고 아래 글을 이해하면 쉽습니다.

웹에서 실제로 무슨 일이 일어날까?

우리가 브라우저에 웹 주소를 입력하는 것은 우리가 상점에 걸어가는 것과 비슷합니다.

1. 브라우저는 DNS 서버로 가서 웹사이트 서버의 실제 ip 주소를 찾습니다.

EX) 우리가 네이버 지도로 상점의 주소를 찾는다.

2. 브라우저가 서버에게 웹사이트의 사본을 보내달라는 HTTP 요청 메시지를 서버로 전송합니다. 
메시지, 클라이언트와 서버 사이에 전송되는 모든 데이터는 TCP/IP 연결을 통해서 전송됩니다.

EX) 상점에 가서 상품을 주문한다.

3. 이 메시지를 받은 서버는 클라이언트의 요청을 승인하고 "200 OK" 메시지를 클라이언트에게 전송합니다.
"200 OK"는 넌 웹사이트를 볼 자격이 있어! 라는 의미입니다. 그 후 서버는 웹사이트의 파일들을 데이터 패킷이라 불리는
작은 덩어리들로 브라우저에 전송을 합니다.

EX) 상점에서 우리가 주문한 상품을 전달받고, 우리는 그 상품을 집으로 가져간다.

4. 브라우저는 이 데이터 패킷들을 완전환 웹 사이트로 조립하고 우리에게 보여줍니다.

EX) 상품이 우리 집 문 앞에 도착한다.

 

인터넷 연결: 웹에서 데이터를 보내고 받게 해준다.

EX) 집과 상점 사이의 거리

TCP/IP: Transmission Control Protocol(전송 제어 규약) / Internet Protocol(인터넷 규약)
-> 데이터가 어떻게 웹을 돌아다닐지 정의하는 통신 규약

EX) 주문을 하고, 상점에 가고, 우리가 상품을 살 수 있게 해주는 운송 장치(우리의 다리 또는 자동차 등등)와 같습니다.

DNS: Domain Name System Servers(도메인 이름 시스템 서버) -> 웹사이트를 위한 주소록

우리가 63.245.217.105 같은 ip 주소를 직접 기억하는 것은 쉽지가 않기에 DNS가 발명되었습니다. DNS는 우리가
브라우저에 입력하는 웹주소 예를 들어 naver.com 같은 웹사이트를 실제 ip 주소에 맞춰주는 특별한 서버입니다.

HTTP: Hypertext Transfer Protocol(하이퍼텍스트 전송 규약)은 클라이언트와 서버가 서로 통신할 수 있게 하기 위한 언어를 정의하는 규약? 약속 같은 친구입니다. 

EX) 우리가 상품을 주문하기 위해 사용하는 언어와 같습니다.

packet: 패킷

기본적으로 웹에서 데이터가 전송될 때, 아주 작은 덩어리들로 전송됩니다. 그렇기에 다양한 웹 사용자들이 동시에 같은
웹 사이트를 다운로드할 수 있습니다. 만약 데이터가 하나의 큰 덩어리로 전송된다면, 한 번에 한 명의 사용자만 다운로드가
가능해져서 매우 비효율적이게 됩니다.

 

Reference

https://developer.mozilla.org/ko/docs/Learn/Getting_started_with_the_web/How_the_Web_works#패킷_설명

 

웹의 동작 방식 - Web 개발 학습하기 | MDN

*'웹의 동작 방식'*은 여러분의 컴퓨터나 폰의 웹 브라우저 안에서 웹페이지를 볼 때 무슨 일이 발생하는지에 대한 간소화된 개념을 제공할 것입니다.

developer.mozilla.org

 

728x90
반응형

+ Recent posts