웹의 동작 원리

백은진·2020년 10월 4일
0

TIL (Today I Learned)

목록 보기
85/106
post-custom-banner
  • 웹의 동작 원리는 면접 시에 자주 마주하는 주제다.
    이 원리를 이해하고 있는 개발자는 자신의 기준에 의해 코드의 효율성을 판단할 수 있기 때문에, 굉장히 중요한 주제다.

사용자가 브라우저에서 서버에 정보를 요청하면, 서버는 응답하고 그 결과를 브라우저에 전송한다.

예를 들어,
내가 브라우저 창에 www.google.com 을 입력하면, 서버에 '이 도메인 주소로 접속하는 것을 허락해줘!'라고 요청하는 것과 같다.
이 요청에 google server는 여러 가지의 상태 코드로 응답을 주며, 200(ok) 상태 코드와 함께 정상적으로 요청과 응답이 이루어졌을 때,
사용자는 google.com 홈페이지에 접속해서 화면을 볼 수 있다.

이런 웹 서버는 사용자가 언제 접속할지 모르므로, 1) 인터넷에 '항상' 연결되고, 2) '절대' 꺼지지 않으며, 3) 사용자의 요청이 오면 '언제든지 응답'하는 컴퓨터여야 한다.

이런 컴퓨터를 제공하는 서비스를 hosting 한다고 한다.
Hosting은 보통 Web hosting service의 약자로 사용된다.

hosting을 전문으로 하는 업체는
AWS EC2(혹은 ECS), cafe 24 등이 있다.

앞서 말한 www.google.com 는 도메인 주소로, string으로 이루어져 있다.
원래 각각의 컴퓨터 및 통신 장비는 고유한 number 값 (IP 주소)을 가지고 이를 통해 서로를 찾고 통신한다.
그러나, 숫자를 외우고 있는 것은 어렵기 때문에 IP 주소를 도메인 주소로 변환해서 이용한다.

IP(v4) 주소는 8 비트의 숫자를 총 4개 가지고 있다. 그러니 총 32 비트의 숫자인 셈인데, 이 숫자들의 조합은 2의 32승, 즉, 약 43억개다.

현재는 이 43억개를 거의 다 사용하는 상태로, 이를 보완하기 위해 IPv6 주소가 개발되었다.
IPv6은 128비트의 숫자를 사용하며, 2의 128승의 조합이 마련될 수 있다.

Domain Name System은 사람이 읽을 수 있는 string 형태인 도메인 이름을, 기계가 읽을 수 있는 number 형태인 IP 주소로 변환한다.
마치 전화번호부같이 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때, 해당 사용자를 어떤 서버에 연결할 것인지를 제어한다.
다시 말해, DNS 요청 (혹은 DNS query)은 사용자 컴퓨터으로부터 DNS 서버로 전송된 정보에 대한 요청으로, 이 요청에 따라 사용자는 도메인 주소를 입력하고도 IP 주소를 통해 인터넷에 접속하는 것과 같은 기능을 누릴 수 있다.

order: 사용자 -> 브라우저 -> 도메인주소 입력 -> DNS Server로 전송 
-> DNS Server에서 브라우저로 IP 주소 전송 -> 브라우저에서 호스트 서버로 IP 주소 전송
profile
💡 Software Engineer - F.E
post-custom-banner

0개의 댓글