본문 바로가기
junior developer :)/CS(Computer Science)지식

주소창에 google.com을 검색하면 일어나는 일

by ㅁ윤슬ㅁ 2023. 7. 6.
728x90
반응형

주소창에 google.com이나 naver.com같은 주소를 입력하면 어떤 과정을 통해 우리에게 결과를 보내주는 걸까?

- 브라우저가 캐싱된 DNS 기록들을 통해 도메인 주소와 대응되는 IP 주소가 있는지 확인한다.

DNS(Domain name system service) : DNS는 URL들의 이름과 IP주소를 가지고 있는(저장하고 있는) 데이터베이스이다.
숫자로 된 IP주소 대신 사용자가 사용하기 편리하도록 주소를 매핑해주는 역할을 한다

이렇게 nslookup 명령어를 터미널에 입력하게 되면 도메인의 ip정보를 출력할 수 있다.

여기서 Non-authoritative answer 값은서버가 직접 해당 도메인을 소유하고 있지 않지만 요청된 도메인에 대한 정보를 캐시하고 있을 수 있다는 것을 나타낸다.

브라우저는 DNS기록을 브라우저캐시, OS 캐시, router캐시, ISP 캐시 이렇게 4가지의 캐시에서 확인한다.

- 요청한 URL이 캐시에 없으면, DNS query를 날린다.
캐시에서 다 검색했는데 아직도 IP주소를 확인할 수 없다면 DNS query를 통해 다른 DNS서버를 검색해서 해당 사이트의 IP주소를 찾는다.

recursive serch라고도 불리는 이 검색은 IP주소를 찾을 때까지 다른 DNS 서버를 오가면서 에러가 발생하던지 검색이 완료될때까지 진행한다.

- 브라우저가 IP주소를 받게 되면 서버와 TCP connection을 빌드하고 브라우저는 인터넷 프로토콜을 사용해서 서버와 연결이 된다.

- TCP로 연결이 되었다면 브라우저가 웹 서버에 HTTP 문서를 요청을 한다.
클라이언트의 부라우저는 GET요청을 통해 서버에게 google.com 웹 페이지(index.html)를 요구한다.
이 요청을 할 때 쿠키 등의 다른 부가적인 정보도 함꼐 전달이 된다.

- 서버가 HTTP response를 보낸다.

status code
100번대 → 정보만 담긴 메세지
200번대 → responce 성공
300번대 → 클라이언트를 다른 url로 리다이렉트 함
400번대 → 잘못 된 주소 입력 등 클라이언트에서 error 발생
500번대 → 서버측에서 error 발생

- 웹 브라우저가 화면에 웹 페이지를 출력한다.

브라우저는 HTML content를 단계적으로 보여준다. HTML의 기본 틀을 렌더링 하고, 추가적으로 필요한 웹페이지 요소들을 요청한다.
이 파일들은 브라우저에 의해 캐싱되어 나중에 같은 페이지를 방문할 때 다시 서버로부터 불러와지지 않도록 한다.


요약하면, 도메인에 주소가 입력 되면 브라우저가 화면에 웹 페이지를 출력하기까지 6개의 단계를 거친다.

  1. 웹 브라우저는 캐싱된 DNS 기록들을 통해 도메인 주소와 대응하는 IP주소를 찾는다
  2. 캐싱된 기록에 없을 경우 HTTP를 사용하여 DNS에 입력된 도메인 주소를 요청한다.
  3. DNS가 브라우저에게 찾은 사이트의 IP주소를 반환한다
  4. 웹 브라우저가 서버에게 IP주소를 이용하여 HTML 문서를 요청한다.
  5. 서버가 요청을 처리한 뒤 HTTP response를 브라우저에게 보낸다.
  6. 웹 브라우저가 화면에 웹 페이지를 출력한다.

참고

https://j-ho.dev/cs-4/

728x90
반응형