우리가 구글로 가고 싶을 때 검색창에 한글로 구글을 쳐서 들어가거나, url창에 영문주소를 쓴다. 그러면 컴퓨터는 유저에게 원하는 페이지를 보여준다.
그렇다면 컴퓨터는 어떻게 영문주소를 인식하고 그 페이지를 그대로 우리에게 보여주는 것일까?
컴퓨터는 영문주소를 IP(숫자)주소로 바꾼 다음 해당 페이지로 찾아간다.
더 매끄러운 설명을 위해서는 몇 가지 단어 먼저 정의하겠다.
호스팅(Hosting, Web hosting service)
사용자의 요청이 오면 언제든 응답을 해야하기 때문에, 인터넷에 '항상' 연결되어 있고 '절대' 꺼지지 않는 호스트 서버(컴퓨터)에 홈페이지 구성파일(HTML, CSS, JavaScript)을 저장해 놓는다. 대표적인 서비스는 AWS, ec2/S3, cafe24 등과 같은 호스팅 센터가 있다.
물론 개인이 쓰는 컴퓨터도 호스트 서버가 될 수 있지만, 언제 어디서든 켜져 있는 상태로 인터넷에 연결되어 있어야 하기 때문에 신경이 많이 쓰일 수 밖에 없다. 만에 하나 정전이 나거나, 인터넷이 끊겼을 때 사용자가 웹페이지를 쳤다면 에러가 뜰 것이다.
도메인(Domain)
문자(string)으로 된 고유 주소이다. 우리가 흔히 보는 www.google.com도 도메인이다.
Top Level Domain(TLD)은 개발할 때 port까지 다 붙여서 개발한다.
http의 기본 포트는 80이고, https의 기본 포트는 443이다. 포트 번호는 다 생략되어 있지만, 실제 url에 넣어보면 잘 동작하는 것을 볼 수 있다.
IP(Internet Protocol)
IP주소는 모든 장비에 부여된 고유한 값으로 인터넷이 연결된 디바이스에 ID 값이 할당된다. 숫자를 사용하여 서로 찾고 통신한다.
IPv4는 8비트 씩 총 32비트로 이루어져있고 최대 약 40억 개의 주소를 부여 할 수 있다. 하지만 인터넷이 우리 생활에 없어서는 안될 존재가 되면서, 주소가 기하급수적으로 늘어났고 수요를 충족시킬 수 없다는 문제를 해결하기 위해 IPv6가 나왔다.
IPv6는 128비트 체계로 구성되어 있으며, 16비트 씩 8부분으로 나뉜다. 때문에 거의 무한대의 주소를 부여할 수 있다고 한다.
DNS (Domain Name System)
드디어 맨 첫 문단에 설명한 '컴퓨터는 영문주소를 숫자주소로 바꾼 다음 해당 페이지로 찾아간다'를 설명할 차례이다.
DNS는 도메인 주소(www.google.com)와 IP주소(ex. 192.0.1.166)를 관리 및 연결해주는 중간 서버로, 유저가 도메인으로 페이지를 요청했을 때 컴퓨터에게 IP주소로 변환해준다.
DNS를 포함한 웹 동작 원리를 보자면 아래와 같다.
'■ 프로그래밍 > Front-end' 카테고리의 다른 글
자료 구조(Data Structure) (2) - Array(배열) (0) | 2020.04.07 |
---|---|
자료 구조(Data Structure) (1) - 소개 (0) | 2020.04.06 |
Git & GitHub (2) - branch, conflict (0) | 2020.04.01 |
Git & GitHub (1) - 정의, 명령어 (0) | 2020.04.01 |
리눅스 & 터미널 기초 (0) | 2020.03.31 |