브라우저의 동작 방법 : 주소창에 구글 주소를 입력 했을 때

크롬을 키고 주소창에 구글의 주소를 치면 구글이 나온다.

이 당연한 이치에 대해서 궁금해 하는 사람이 얼마나 될까?

하지만 당신이 개발자라면 왜? 라는 생각이 안들어도 왜? 라고 물어봐야 한다

 

이번에는 개발자 면접 질문 중에서도 사골 of 사골이라고 할 수 있는 이 질문에 대해서 접근해 보자.

 


 

간단하지만 복잡한 브라우저

실제 사용할 때는 간단하게 주소창에 특정 웹 사이트 주소를 입력하면 해당 사이트로 이동하는데

입력 후 엔터를 친 순간부터 해당 사이트가 화면에 뜰때까지 브라우저 뒤에서는 복잡한 구조로 동작이 이루어진다.

 

우리는 개발자기에 그 뒤를 알아보려고 한다.

해당 과정은 다음과 같이 이루어진다.

1. 브라우저에 구글을 입력하면 먼저 DNS서버에게 이 도메인의 IP 주소를 요청한다.
2. DNS가 일련의 과정을 통해 구글의 IP 주소를 반환해 준다.
3. 브라우저는 해당 IP 주소를 TCP 통신을 통해 IP주소의 서버에 요청을 보낸다.   
    이 요청은 일반적으로 HTTP 또는 HTTPS 프로토콜을 통해 이루어진다.
4. 서버는 브라우저의 요청을 받으면 해당 페이지를 생성하고 정보를 브라우저로 전송한다.
5. 브라우저는 받은 정보를 해석해 웹페이지를 렌더링한다.

 

이 과정을 전화 하는 방식과 비교해 보면 이렇지 않을까?

 

내가 썸남, 썸녀에게 전화하고 싶을 때,

전화번호부에서 그 사람의 이름을 검색하고 (DNS) 통화 버튼을 누르면 (서버에 요청)

통신망을 통해 (TCP, 인터넷) 그 사람의 전화가 울리고 (서버 요청 받음)

그 사람이 통화를 받는 버튼을 누르면 (서버가 요청에 대한 응답) 통화가 되는 것 같은 것과 비슷할 것 같다.

 

그림으로 표시해 보면 이와 같은 형태로 이루어지게 되는데

각 과정에서 등장한 개념들을 정리해 보면서 어떤 과정을 통해 이루어지는지 더 살펴보자

 

728x90

 

그 친구 번호 좀 알려주세요

주소창에 구글 주소를 치면 가장 먼저 겪게 되는 과정은 해당 주소의 ip를 찾는 일이다.

전 세계 모든 웹 사이트에는 해당 사이트를 특정하는 ip 주소가 있다.

우리가 어딘가에서 한번쯤 봤었던 192.168.0.1 과 같은 형태가 ip 주소의 형태인데,

사실 컴퓨터는 이 ip 주소를 통해 해당 웹 페이지의 정보를 요청하게 된다.

 

도메인 즉, 웹 사이트의 주소는 사람이 보기 편하도록, 보기 쉽도록 만들어 둔 별명 같은거다.

이런 별명을 ip 주소와 매칭시켜서 관리하고 있는 시스템을 DNS라고 한다.

핸드폰에 친구 번호를 이름이나 별명으로 저장해 놓고 필요시 해당 이름이나 별명으로 검색해 번호를 찾듯

도메인 주소를 가지고 DNS 서버에서 ip 주소를 찾는다고 이해하면 되겠다.

 

DNS 서버에서 일련의 과정을 거쳐 ip 주소를 찾으면

해당 ip 주소의 서버에 웹 사이트의 정보를 요청하게 되는데

이 과정에서 TCP 통신을 진행하게 된다.

 


 

함께 읽으면 좋은 글 리스트

DNS : ip 주소를 외우지 않아도 되는 이유

 

포스팅 작성에 참고한 감사한 글들

뇌드 디스크 : 주소창에 네이버를 쳤을 때 생기는 일

이상윤님 블로그 : 주소창에 네이버를 치면 일어나는 일을 쉽게 이해해보자