[Network] 브라우저에 "www.google.com" 을 치면 일어나는 일
in Dev. Log on Development, DNS
![[Network] 브라우저에](/assets/img/dns.png)
네트워크 공부 및 개발 공부를 하게 되면 필수 적으로 접하는 것이 있다.
바로 “000을 브라우저에 입력하면 일어나는일”
구글링을 하면 여러 정보들이 나오지만, 저의 블로그 특성상 이해 하기 쉽게 정리하겠습니다.
더 자세한 정보를 원하면 관련 정보를 검색하면 될것입니다.
브라우저에 “www.google.com” 을 입력하면 일어나는 일
- DNS(Domain Name Sever) 검색
- 브라우저는 cache → OS cache → Router cache → ISP cache 순으로
URL에 대한 캐싱된(기억하고있는) DNS 주소가 있는지 찾는다. - 기록이 있다면 바로 해당 주소에 맞는 IP를 전달하고 없다면, ISP(통신사)의 DNS 서버에서
다른 DNS 서버의 DNS Query를 통해 검색하여 IP 주소를 찾는다.
- 브라우저는 cache → OS cache → Router cache → ISP cache 순으로
- TCP connection을 한다.
- IP는 브라우저와 서버를 연결하기 위하여 TCP 연결을 한다.
- TCP 는
SYN,ACK패킷을 통해 요청을 주고 받는다. - 3-way Handshaking 이라는 프로세스를 통해 서버간 connection을 한다.
- 브라우저가 웹 서버에 HTTP 요청을 한다.
- TCP 연결이 되면 데이터 전송을 한다.
- 브라우저는
GET요청을 통해 서버에게 “www.google.com” 웹페이지를 요구한다.
- 서버가 요청을 처리하고 response를 생성한다.
- 서버는 브라우저에서 요청을 읽고 response 을 생성한다.
- 요청된 내용을 가지고 서버의 정보를 업데이트 하거나 헤더를 읽는다.
- 특졍 형식에 맞게 (JSON, XML, HTML)을 응답한다.
- 서버가 브라우저로 HTTP Response를 보낸다.
- 서버의 Response에는 요청한 웹페이지, 상태코드, 쿠키, 개인정보 등이 포함되어 있다.
- 브라우저는 HTML content를 렌더링한다.
- 브라우저는 html content를 단계적으로 렌더링
- 해당 contents 들은 브라우저에 의해 캐싱되어 나중에 해당 페이지 재방문시
서버에 재요청하지 않도록 한다. - 결과적으로 화면에 ‘www.google.com’ 에 대한 페이지가 나온다.