Skip to content

Latest commit

 

History

History
66 lines (38 loc) · 4.23 KB

process-www.google.com-browser.md

File metadata and controls

66 lines (38 loc) · 4.23 KB

주소창에 www.google.com을 치면 일어나는 일련의 과정에 대해 설명해주세요.

과정 요약

주소창(검색바)에 URL(www.google.com)을 입력 👉🏻 입력 정보 확인 👉🏻 네트워크 호출 👉🏻 렌더링 작업 👉🏻 구글

주소창에 입력한 정보를 확인

해당 텍스트 정보가 URL인지 검색어인지 확인한다.

  • 이때 검색어일 경우, 검색 엔진에 연결되고
  • URL일 경우 브라우저 엔진에서 (네트워크 스레드를 통해) 네트워크 호출을 수행한다.

네트워크 호출

브라우저가 사용자에게 '구글'이라는 사이트를 화면에 보여주려면 구글의 데이터(HTML 문서, CSS 문서, 스크립트, 이미지 등) 미리 가지고 있어야 하는데, 현재 브라우저엔 이러한 정보가 없다. 그래서 브라우저는 네트워크 통신을 통해 이러한 데이터들을 가지고 있는 구글 서버 컴퓨터로부터 가져와야한다.

이 작업 수행을 위해 브라우저는 우선 구글 서버가 있는 컴퓨터의 IP 주소부터 파악해야한다.

요약

  1. 네이버 서버의 주소를 알기 위해 네임 서버(Name Server)와 통신하기
  2. 알아낸 주소를 바탕으로 네이버 서버와 통신하여 필요한 데이터 응답받기

1. 네이버 서버의 주소를 찾는 과정

클라이언트(사용자의 컴퓨터)는 다음의 과정을 수행

자신의 host 파일에서 도메인 네임(google.com)에 대응하는 IP 주소가 있는지 우선 확인한다. 만일 없다면, 네임 서버(Name Server)에 '구글의 IP 주소를 알려주세요' 라는 요청을 보낸다.

  • 도메인 네임 : URL www.google.com에서 google.com 에 해당하는 부분

인터넷은 컴퓨터의 주소인IP 주소를 기반으로 동작한다. 하지만 우리가 인터넷을 사용할 땐, IP 주소 대신 사용하기 쉽도록 문자로 이루어진 도메인 네임을 사용한다.

따라서 도메인 네임을 IP 주소로 변환해 주는 환경인DNS (Domain Name Server)가 반드시 필요한데, 이 DNS를 운영하는 장치를네임 서버 (Name Server) 혹은DNS 서버라 한다.

즉, 네임 서버는 도메인 주소에 대응하는 IP 주소를 찾아주는 역할을 수행하는 것이다.

클라이언트는 일반적으로 네임 서버의 IP 주소를 이미 가지고 있다.

따라서 클라이언트는 네임 서버와 통신이 가능하고, google.com에 해당하는 IP 주소를 요청 및 응답 받을 수 있다.

2. 네이버 서버와 통신하여 필요한 데이터를 받는 과정

이제 클라이언트는 네이버 서버의 IP 주소를 알게 되어 네이버 서버와 통신할 수 있게 되었다. 클라이언트의 브라우저는 (TCP 소켓을 열고 이를 통해) 네이버 서버에 데이터를 요청하는 HTTP Request를 보낸다.

HTTP Request를 받은 네이버 서버는 클라이언트가 요청한 문서를 찾아 읽고 이를 바이트 형태 (1과 0으로 이루어짐) 로 변환한 후, 클라이언트로 HTTP Reply (HTTP Response)를 보낸다.

렌더링 작업

브라우저 엔진(의 네트워크 스레드)은 네이버 서버로부터 응답받은 데이터에 악성 바이러스가 있는지 우선 검사한다.

이 데이터는 바이트 형태의 텍스트 문서이므로, 브라우저 엔진이 읽을 수 없다. 따라서 브라우저 엔진(의 UI 스레드)은 렌더링 엔진에게 해당 데이터를 해석하고, 웹 페이지를 화면에 띄울 것을 요청한다.

요청을 받은 렌더링 엔진은 받은 데이터를 바탕으로 렌더링 프로세스를 수행하고, 이 과정이 끝나면 브라우저 엔진에게 작업 완료를 알린다.

그리고 화면에 네이버 페이지가 드디어 보여지게 된다.

참고자료