여태까지는
"도메인에 접속할 때 과연 그 뒷단에서는 무슨 일이 일어나고 있을까?"라는 생각은
당연히 단 0.1도 해본 적이 없었다.
그러던 중 위코드 세션에서 흥미로운 이야기를 듣게 되어 정리해본다.
도메인 창(주소 창)에 www.wecode.co.kr을 치고 엔터를 누르면,
우리는 위코드 서버에 "위코드 홈페이지에 뭐가 있는지 좀 보여줘" 라는 명령을
위코드 서버에 보내는 셈이다.
해당 요청을 받은 위코드 서버는, "자 여기" 하며 위 홈페이지 메인 사진과 같은
www.wecode.co.kr 주소에 걸맞는 홈페이지 메인 사진을 우리에게 넘겨주게 된다.
나를 포함한 수많은 사람들이 www.wecode.co.kr을 치고 누르면
바로 팝업창 뜨듯 걍 "메인!" 하고 뜬다고 생각했던 수많은 홈페이지들의 홈 화면은 사실 이처럼
뒷단에서의 커뮤니케이션 과정의 결과물이었다.
그 과정을 조금 더 자세히 보자.
위코드 호스트 서버는 위에 보이는 바처럼
홈페이지를 구성하는 html과 css, js(JavaScript) 파일들로 이루어져있다.
흔히 이 파일들을 "위코드 홈페이지 프론트 단을 구성하는 파일들"이라고 말한다.
근데 여기서 궁금한 점, 파일들을 보여주는 건 보여주는거고
온갖 정보 관련 부분에 있어서는,
사용자가 단순히 "www.wecode.co.kr"만 띡 쳤을 때 서버가 대체 뭘 알고 정보를 좌라락 알맞게 보여주느냐이다.
여기서 바로 중요한 개념인 IP(Internet Protocol)가 등장하게 된다.
IP
- 인터넷으로 통신하는 각 디바이스에 부여된 고유한 값
- 내가 가진 디바이스(ex. 맥북, 아이폰, (hopefully)아이패드, (hopefully2)애플워치) 마다 부여된 아이피 주소는 모두 다름
--> 그래서 각각의 디바이스가 그 자체로 서버가 될 수 있는 것!- 스마트폰이나 노트북부터 대규모 소매 웹 사이트의 콘텐츠를 서비스하는 서버에 이르기까지 인터넷상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신하는데, 그 때에 필요한 숫자 주소가 바로 IP주소
- 위 사진에 보이는것처럼 3개의 dot notation으로 총 네 개의 마디로 구성된 아이피 체계를 IPv4 체계라고 일컬음.
- IPv4에 부여된 숫자가 현재 전 세계적으로 꽉 차가는 상황이라 현재까지는 IPv4 형식의 IP 주소가 절대 다수이나, 곧 다른 형식의 IP 주소 체계가 사용될 것이라는 전망 (IPv6인듯?)
그런데 이런 IP는 숫자로 되어있기에 직관적이지 않아 외우기에는 꽤나 어려운 편이다.
그래서 인간 친화적인 영문 주소가 사용되는 것인데,
이 인간 친화적인 영문 주소를 우리는 Domain이라 부르는 것이다.
Domain(Domain name)
- 편의상 사용하는 문자(string)로 된 고유 주소(대표적으로 www.wecode.co.kr)
- 참고로 도메인은 1년에 2만원 안팎의 가격으로 주소를 사서 사용하는 시스템
- 아래 사진이 BASE URL의 구조
- 부연설명을 하자면,
top level domain은 보통 TLD라고 부르며, port의 경우 기본 포트는 8000이다.- 맨 마지막 부분의 query string은 이름에서 느껴지듯
?
뒤에 위치한 부분을 의미하며, 아마도 많은 유저들이 인터넷 주소창을 보며 "아 지금 ~~~한 페이지구나"라고 알 수있게 하는 부분이다.
위코드에와서 많은 세션을 들으며 느끼는 게
정말이지 컴퓨터는 착하지만 일을 못하는 직장 동료 같다는 것이다.
착해서 시키는 일은 모두 착실히 해내지만 알아서 일을 하지는 못함!
이런 답답한 직장동료와 닮은 컴퓨터가
인간 입장에서 편하자고 써놓은 string을 지네가 편한 1, 0 숫자 언어로 알아서 자연히 이해할리가 없는 것이다.
그래서 시스템이 또 존재하고 있었다!
그것은 바로 DNS
DNS (Domain Name System)
- 사람이 읽을 수 있는 도메인 이름을 머신이 읽을 수 있는 IP로 변환하는 시스템
(ex. www.google.com —> 192.0.2.44)- 이름과 숫자간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 함
- DNS 서버는 이름에 대한 요청을 IP주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때, 해당 사용자를 어떤 서버에 연결할 지를 골라서 연결 시켜줌.
- 즉 결국 이놈이 없으면 아무것도 못함
그 과정을 그림으로 도식화하면 아래와 같다
🤩
자 이것이 바로 어떻게 Server가 작동하는지에 대한 개괄적인 설명이었다.