- 브라우저 검색창에 ‘www.google.com’을 입력 후 엔터
- 브라우저는 캐싱된 DNS 기록을 체크
- 브라우저는 4가지 캐시를 확인한다(브라우저 캐시 > OS 캐시 > router 캐시 > ISP 캐시
- ISP는 인터넷 서비스 공급자의 약자임(SK, LG, KT, ..)
- 요청한 URL이 캐시에 없으면, ISP의 DNS 서버에서 다른 DNS 서버를 DNS Query를 통해 검색하여 IP 주소를 찾는다
- 캐시에 요청한 URL 정보가 없으면, ISP는 DNS 서버들을 검색해 해당 도메인 IP 주소를 검색 (재귀적 쿼리)
- 브라우저가 서버와 TCP Connection을 한다(Handshaking)
- 브라우저는 서버와 HTTP connection을 통해 연결을 한다.
- HTTP 연결의 경우 일반적으로 TCP를 사용함
- 3-way-handshake를 통해 클라이언트-서버 간 connection을 한다.
- 브라우저가 웹 서버에 HTTP 요청을 한다.
- TCP 연결이 되면 HTTP 요청을 하게 된다.
- 클라이언트는 GET 요청을 통해 서버에서 ‘www.google.com’의 웹 페이지를 요구한다.
- 서버가 요청을 처리하고, 응답을 생성한다.
- 서버가 가지고 있는 웹 서버에서 브라우저로부터 온 요청을 읽고 응답을 생성한다.
- 응답은 특정한 포멧(JSON, XML, HTML)로 작성한다.
- 서버가 HTTP 응답을 보낸다
- 서버의 응답에는 요청한 웹페이지, 상태 코드, 쿠키, 개인정보 등이 포함되어 있다.
- 브라우저가 HTML 콘텐츠를 보여준다
- 브라우저는 HTML 콘텐츠를 단계적으로 렌더링하여 노출한다.
- 해당 콘텐츠들은 브라우저에 의해 캐싱되어 나중에 해당 페이지 재방문시 서버에 재요청을 하지 않도록 한다.