본문 바로가기

■ 프로그래밍/Front-end

웹 동작 원리 기초

우리가 구글로 가고 싶을 때 검색창에 한글로 구글을 쳐서 들어가거나, 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 값이 할당된다. 숫자를 사용하여 서로 찾고 통신한다. 

 

출처: Google

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를 포함한 웹 동작 원리를 보자면 아래와 같다.