인터넷과 웹의 동작 방식
- 인터넷은 어떻게 구성되고 웹은 어떻게 동작하는가? -
인터넷(Internet)과 웹(Web)을 구분할 정도는 되었고, 웹은 HTTP를 기반으로 한다는 것도 알았다.
이제는 인터넷과 웹이 어떻게 동작하는지 이야기해 보려 한다.
인터넷과 웹이 무엇인지부터 알아야 한다면 아래 포스팅을 먼저 참고해 주기 바란다.
인터넷은 어떻게 구성되어 있는가?
인터넷은 전 세계 컴퓨터들을 연결하는 통신망이다.
인터넷은 어떻게 보면 컴퓨터와 컴퓨터가 연결되어 있는 선이라고 할 수 있다.
그 선이 유선이면 흔히 전선이나 광케이블 같은 거라고 생각하면 된다.
무선이든 유선이든 아무튼 컴퓨터를 연결하고 있는 선이 인터넷이라고 할 수 있다.
이미 가정에서도 여러 대의 컴퓨터들이 연결되어 있다.
4인 가족일 경우를 생각해보자.
네 명의 식구가 각자 휴대폰을 가지고 있고, 집에서 Wifi 공유기에 모두 접속되어 있다면 이미 4대의 컴퓨터가 연결되어 있는 것이다. 여기에 노트북 한 대가 Wifi에 연결되어 있고, 데스크톱(PC) 한 대가 유선으로 연결되어 있다면 6대의 컴퓨터가 서로 서로 연결되어 있다고 가정해 보자.
공유기라는 것이 있어서 6대의 컴퓨터를 아주 쉽게 연결할 수 있다.
만약, 공유기가 없다면 어떻게 연결해야 할까? 생각해 보면 다음과 같이 매우 복잡해진다.
위 그림은 모두 유선으로 연결한다고 했을 때인데 한 가정의 기기 6대를 모두 연결하는데 케이블이 15개가 필요한 셈이다. 한 가정이 이러한데 전 세계 컴퓨터를 모두 저런 식으로 연결하려면 장난 없을 듯하다. ㅎㅎ
이걸 공유기라는 것을 두면 다음과 같이 단순해진다.
물론, 데스크톱(PC)를 제외하고 나머지 5대는 모두 무선으로 연결이 가능하니 실제 필요한 케이블은 1개면 가능해진다. 모두 케이블로 연결한다고 해도 6개로 절반 이상을 줄일 수 있다. 요즘은 PC도 무선으로 연결이 가능하게 할 수도 있어서 복잡한 케이블이 없이 연결이 가능해진다.
인터넷상에서는 공유기도 하나의 컴퓨터라는 것을 알아야 한다.
한 가정의 네트워크가 공유기에 연결되는 것을 알았다.
ISP(Internet Service Provider)란?
내가 사용하는 컴퓨터가 공유기에 연결하는 것으로 인터넷에 연결된다. 왜일까?
공유기가 ISP와 연결되기 때문이다.
ISP는 Internet Service Provider의 줄임말로 인터넷 서비스 제공자를 말한다.
우리나라로 치면 SK, LG유플러스, KT와 같은 통신 사업자가 대표적이라 할 수 있다.
각 나라별 ISP가 있으며, ISP마다 모두 연결이 되어있다고 생각하면 된다.
각 가정의 많은 컴퓨터 기기들이 공유기에 연결되어 있듯이 ISP들이 서로가 연결이 되어 있다고 생각하면 된다.
ISP와 ISP도 하나의 공유기(사실은 공유기와는 비교할 수 없는 네트워크 장비)와 같은 장비들로 연결되어 있다고 생각하면 된다.
큰 그림으로는 위와 같이 연결이 될 수 있다.
가정을 예로 들었지만 가정이 회사가 될 수 있고, 네이버가 될 수 있고 구글이나 페이스북 등 어떠한 컴퓨터도 될 수 있고 ISP와 연결된 어떠한 기기도 인터넷을 통한다고 생각하면 된다.
이렇게 무한히 확장이 가능하기 때문에 전 세계 컴퓨터들이 연결되는 것이다.
그래서 아래 맵과 같이 바다 밑에도 네트워크 케이블이 어마어마하게 매설되어 있다.
혹은 위성을 이용해 연결될 수도 있는 것이다.
앞서 본 다음 그림에서는 클라이언트만 연결되어 있다.
여기에 서버를 표시하자면 다음과 같을 수 있다.
IDC(Internet Data Center)란?
IDC라는 것이 연결되었다.
IDC는 Internet Data Center (인터넷 데이터 센터)의 줄임말이다.
그림에서는 IDC가 한 곳만 연결해 뒀지만 전 세계에는 수많은 IDC가 있고 모두 ISP를 통해 연결되어 있다고 생각하면 된다.
IDC는 서버 컴퓨터와 네트워크 회선 등을 제공하는 시설이다.
인터넷(Internet)과 연결된 데이터를 모두 모아두는 시설이라고 생각하면 된다.
구글 홈페이지도 유튜브의 영상도 네이버 홈페이지 데이터도 지금 이 블로그의 글이나 사진들도 모두 서버라는 컴퓨터에 저장이 되고 있고, 대부분의 서버 컴퓨터들은 이러한 IDC에 모아져 있다.
서버 컴퓨터라고 해서 모두 IDC에 있는 것만은 아니다.
가정에 둘 수도 있고 회사 사무실에 둘 수도 있다.
가정에서 사용하고 있는 PC도 서버의 역할을 할 수도 있다.
우리가 브라우저에서 https://wishlan.tistory.com이라고 입력하면 이 블로그가 저장된 서버를 찾아가서 해당 서버의 데이터를 불러오게 되는 것이다.
그럼 어떤 과정을 거치게 되는지 살펴보자.
인터넷의 웹(Web)은 어떻게 동작하는가?
우리가 브라우저에서 https://wishlan.tistory.com이라고 인터넷의 수많은 케이블을 따라 이 블로그가 저장된 서버를 찾아간간다고 얘기했는데, 그럼 어떻게 찾아가는 것일까?
이것을 이해하려면 먼저 IP라는 것을 알아야 한다.
IP(Internet Protocol)란?
우리가 우편물을 보내고 받을 때에도 필요한 것이 있다. 그것은 바로 주소다.
인터넷에도 각각의 컴퓨터마다 주소가 있어서 찾아갈 수 있다.
인터넷에 연결되어 있는 컴퓨터가 서로 통신을 하기 위해서도 컴퓨터들마다 고유한 주소가 필요하다.
그것을 IP라고 한다.
IP는 Internet Protocol (인터넷 프로토콜)의 줄임말이다.
IP는 인터넷이라는 네트워크에서 어떤 정보를 보내고 받는데 필요한 규약(약속)을 의미한다.
내가 사용하고 있는 기기의 인터넷상의 IP 주소를 알고 싶다면,
지금 바로 네이버나 다음 앱을 열어 '내아이피'라고 검색해 보자.
위와 같이 내가 사용 중인 기기의 IP 주소를 확인할 수 있다.
IP(Internet Protocol)란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰, TV, 냉장고 등)을 식별할 수 있도록 각각의 기기에 부여되는 고유한 주소이다.
네이버나 다음에서 '내아이피'라고 검색해 보면 자신이 현재 접속한 기기에 부여된 IP 주소를 확인할 수 있는데, 점을 구분으로 해서 4칸으로 이뤄진 숫자가 확인될 것이다.
211.23.88.126 이런 식이다.
정확히 얘기하면 IP는 IPv4와 IPv6로 2가지이다.
우리가 현재 가장 많이 사용하고 있는 주소 체계는 IPv4로 'v4'는 version 4라는 의미이다.
IPv4의 주소는 아래 그림과 같이 32비트 방식으로 이뤄져 있으며, 8비트씩 4자리로 되어 있고 각 자리는 점(.)으로 구분하게 되어있다.
각 자리는 0~255까지 표기될 수 있어서, 0.0.0.0~255.255.255.255까지 될 수 있다.
개수로 치면 2^32가 되어 약 42억 9천4백9십6만 7천여 개가 된다.
이 세상의 기기가 42억 개보다 많을까? 적을까? 찾아보진 않았지만 분명히 많을 것이다. 왜냐하면 현재 IPv4 주소가 고갈의 위기에 처해 있기 때문이고, 모든 기기가 IPv4의 주솟값을 다 가지고 있진 않기 때문이다.
모든 기기가 다른 IPv4의 주소를 가지고 있지 않다? 무슨 얘기일까?
아래 그림을 다시 보자.
위의 구성으로 연결되어 있는 기기 6대는 인터넷상에는 모두 같은 IPv4의 주소를 가진다.
(정확히는 모두 다른 IPv4 주소를 가지지만, 서버가 인식하는 IP는 모두 동일하다.)
이상하지 않은가? 우리 집 주소와 같은 주소를 가지는 집이 있을 수 있나? 그러면 어떻게 찾아가나? 등의 의문이 생길 것이다. 하지만 같은 공유기에 연결되어 있는 기기를 가지고 각각 네이버에서 '내아이피'라고 검색해 보라.
아마도 같은 IP 주소를 확인할 수 있을 것이다.
위 그림을 예로 들면 1번 스마트폰과 2번 스마트폰이 213.33.12.124라는 IP 주소로 동일한 결과를 볼 수 있다고 가정하면, 이것은 네이버 서버가 인식하는 1번, 2번 스마트폰의 IP 주소는 정확히는 1번 2번 스마트폰이 연결되어 있는 공유기의 IP 주소만을 인식하기 때문이다. 앞서서 공유기도 하나의 컴퓨터라고 했다.
이렇게 되는 이유는 결론만 얘기하면 공유기가 ISP로부터 IP 주소를 할당받고 공유기는 자신에게 연결되는 기기에 공유기가 별도의 IP를 부여하는 방식이기 때문이다.
여기서 더 설명하진 않겠다. 그러면 이 포스팅은 또 IP에 대한 강좌가 돼버리기 때문이다.
IP에 대해 검색해 보면 많은 자료를 접할 수 있을 것이다.
이렇듯 웹 개발을 하기 위해서는 알아야 하는 정보가 아주 많다는 사실을 알았으면 한다.
그렇다고 겁낼 필요는 없다. 알아가기 시작하면 또 금방이다.
웹(Web) 동작 과정
그럼, 우리가 브라우저를 실행해서 주소 표시줄에 https://www.naver.com이라고 입력하면 어떤 과정을 통해 네이버 홈페이지를 보게 되는 것인지 간략히 알아보자. 간략히 보면 매우 단순하다.
① 브라우저는 DNS에 IP 주소를 물어본다.
우리가 https://www.naver.com이라고 입력하면 브라우저는 DNS에 도메인 http://www.naver.com의 IP 주소를 물어본다. 이야기를 조금만 더 해보면 우리가 알아야 할 것이 바로바로 생긴다.
여기서 우리가 알아야 하는 것은 도메인(Domain)과 DNS를 알아야 한다.
일단 넘어가자.
② 브라우저는 DNS에서 받아온 IP 주소에 해당하는 서버에게 http://www.naver.com 도메인이 가리키는 정보를 달라고 HTTP(S)로 요청(Request) 메시지를 보낸다.
브라우저의 요청을 받은 서버는 어떤 요청인지 판단하고, 때로는 허가된 요청인가?도 확인한다.
그 결과를 바탕으로 응답(Response) 메시지를 요청한 브라우저에게 보낸다.
③ 브라우저는 서버로부터 응답받은 내용을 해석하고 조합한 내용을 화면에 출력한다.
그것이 우리가 보고 있는 네이버 홈페이지다.
간략히 알아보면 위와 같지만 ①, ② 과정에 조금 더 들여다보면 다음과 같다.
① 브라우저가 DNS에 IP 주소를 물어보는 과정
- 물어보기 전에 우리가 입력한 https://www.naver.com이라는 URL을 브라우저가 해석하게 된다.
- 이 해석한 URL을 바탕으로 브라우저는 할 일들을 준비하게 된다.
http://www.naver.com의 IP 주소를 찾기 위해 브라우저는 OS에 DNS 요청을 의뢰하게 된다. - DNS 요청은 UDP라는 프로토콜로 하게 되며, OS는 브라우저의 의뢰를 받아 DNS 서버로 질의해서 IP 주소를 찾아서 메모리에 저장해 두면 브라우저는 해당 IP를 얻게 된다.
여기서 UDP라는 용어가 나오는데 이 또한 알고 가면 좋겠지만 여기서 설명은 생략하는 점 양해 바란다.
DNS는 Domain Name System(도메인 이름 시스템)의 줄임말로 인터넷의 주소록이라고 생각하면 된다.
IP는 숫자로 되어 있어서 외우기 쉽지 않다. 그래서 도메인이라는 것을 사용하고 대신에 해당 도메인이 가리키는 실제 IP 주소를 DNS가 관리하게 된다.
② 브라우저는 DNS에서 받아온 IP 주소에 해당하는 서버에게 http://www.naver.com 도메인이 가리키는 정보를 달라고 HTTP(S)로 요청(Request) 메시지를 보낸다.
- 요청을 보내기 전에 브라우저가 먼저 하는 일은 IP 주소로 TCP 연결을 하게 된다.
- 연결이 되면 그다음에 HTTP(S)로 요청을 보낸다.
여기서 TCP라는 용어가 나오는데 이 또한 알고 가야 한다. 하지만 여기서 설명은 생략한다.
더 정확히 얘기하려면 위의 얘기는 HTTP에 대한 이야기이다.
HTTPS에 대한 과정은 암호화 키를 받아오는 등의 과정이 더 들어가게 된다.
이 부분에 대해서는 다른 포스팅으로 추가로 이야기 할 기회가 있을 것이다.
여기까지 인터넷(Internet)이 어떻게 구성되고 동작되는 것인지, 웹(Web)이라는 것이 어떻게 동작되는 것인지 큰 틀에서 이야기했다. 이야기 과정에서 나오는 용어들 하나하나 한 걸음만 더 들어가 보고자 하면 하고픈 이야기는 몇 배는 더 많아지지만 다음에 이어서 하기로 하자.
절대 조급해 할 필요 없다.
한 걸음 한 걸음 내딛다 보면 어느샌가 많은 부분을 지나왔음을 알게 되는데 그때의 기분은 뭐라 표현할 길이 없어 아쉬울 것이라 확신한다.
인터넷과 웹의 동작을 얘기하면서 빠질 수 없는 것이 도메인(Domain)이다.
다음엔 그 도메인에 대해 알아보자.
상기 상품 배너는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
'코딩해보니 > 웹(Web)개발' 카테고리의 다른 글
URI vs URL vs URN: 개념과 차이점 정리 (3) | 2024.11.24 |
---|---|
도메인 네임과 DNS (Domain Name & Domain Name System) (1) | 2024.11.23 |
HTTPS란 무엇인가? (1) | 2024.11.21 |
웹에서 요청(Request)과 응답(Response)는 무엇인가? (2) | 2024.11.20 |
HTTP(HyperText Transfer Protocol)란 무엇인가? (2) | 2024.11.19 |
댓글