좋은 웹 경험은 빠른 로드, 페이지와 원활한 interaction에 의해 결정된다.
브라우저의 동작원리를 이해하는 것은 개발자가 위의 두 가지 목표를 이루는 것을 도와줄 것이다.
탐색은 웹페이지를 로딩하는 첫 단계이다. 사용자는 URL을 입력하거나 링크를 클릭하는 동작을 함으로써 페이지를 이동, 로드하게 된다.
우리는 웹페이지를 사용할때 주소창에 사이트의 URL을 입력하고 페이지를 이동한다.
이때 사용하는 URL은 예를들어 다음과 같은 형식으로 입력한다.
www.go-to-page.com
text로 된 주소를 입력하면 해당 페이지로 이동 (HTML 로드) 한다.
브라우저는 text로된 주소를 입력받으면 DNS조회를 통해 실제 주소와 일치하는 IP를 찾아서 서버에 여러 자원을 요청하는 방식으로 사용자는 페이지를 볼 수 있게 된다.
DNS란 IP에 이름을 붙혀서 클라이언트 <---> 서버
간의 정보를 매칭시켜주는 시스템이다.
사용자인 우리는 페이지를 이동 할 때 실제 서버주소를 가지고 있는 IP를 사용한다면 굉장히 사용하기 불편할 것이다.
이를 위해 IP주소마다 이름을 붙혀서 사용하는데 이게 DNS의 동작 방식이다.
클라이언트는 기억하기 쉬운 URL로 브라우저에서 요청을 보내고 브라우저는 URL을 입력받아서 해당 URL에 맞는 IP를 찾아서 서버로 자원 요청을 보낸다.
여기서 조금 더 알아보면 효율적인 서버와 클라이언트 측의 소통관계를 도와주기 위해 한번 조회 된 DNS는 설정된 시간만큼 캐싱을 한다.
이전에 사용자가 한번 요청을 보낸 URL이라면 캐싱된 시간동안은 동일한 URL로 DNS조회 요청이온다면 바로 DNS조회요청을 보내는 것이 아닌, 이전에 캐싱한 주소를 그대로 응답해준다고 한다.
이를 통해 조금더 빠른 소통을 도와준다.
DNS조회를 통해 웹 서버로부터 응답을 받게된다. 요청이 성공한다면 서버로부터 자원을 넘겨받게 되는데 넘겨받은 자원을 화면에 보여주는 것이 랜더링 과정이다.
이 전에 작성한 글에서 동작순서에 대해 다룬 글이 있다.
웹페이지를 표시한다는 것: 브라우저는 어떻게 동작하는가
브라우저 동작 원리 & 구조
브라우저는 어떻게 동작하는가?