www.naver.com을 접속하면?

vvo_ter·2024년 7월 13일
0

daily-cs

목록 보기
1/6
post-custom-banner

면접에 종종 나온다고 유명한 질문이죠.

🍔 입력부터 렌더링 되기까지 절차

  1. 사용자가 브라우저에 URL 주소를 입력한다.
  1. URL 중에서 도메인 네임 부분을 DNS 서버에 검색한다.
  1. DNS 캐싱을 활용하여 도메인 주소와 대응하는 IP 주소를 찾는다.

DNS 캐싱은 도메인 요청했다면 로컬 PC에 자동 저장되는 것을 말합니다.
OS가 해당 도메인의 IP 주소를 확인하기 위해 가장 먼저 hosts 파일을 확인합니다.

  1. 캐싱된 기록에 도메인 주소가 없다면 DNS Server가 계층적인 구조로 도메인 이름을 찾고 IP 주소로 변환한다.

DNS resolver가 root name server에서 top-level(.com)으로 second-level(.naver)으로 third-level(www) 순으로 요청합니다.
이후 도메인 이름에 따른 IP 정보를 획득합니다.

  1. IP 라우팅을 통해 실제 서버를 찾는다.

ARP로 MAC addr을 획득합니다.

  1. 브라우저는 서버와 TCP 연결한다.

https로 통신하므로 TCP 연결을 구축합니다. 해당 과정에는 3-way handshake와 TLS handshake가 포함됩니다.
http/3인 경우에는 QUIC 기반이므로 TCP 연결을 따로 진행하지 않습니다(즉 http/2까지).

  1. TCP 연결에 성공하면 브라우저가 웹 서버에게 http request를 보낸다.
  1. WAS와 Database에서 웹 페이지 작업을 처리한다.

동적인 컨텐츠를 WAS에게 요청하고 컨텐츠를 다운로드 받습니다.
처음 다운로드 시작하는 것을 Time To First Byte라고 합니다.

  1. 요청을 처리한 결과를 http response로 브라우저에게 전송한다.

웹 페이지, status code, 쿠키, 개인정보 등을 포함합니다.

  1. 브라우저는 HTML을 렌더링하여 화면에 띄운다.

HTML/CSS/JS 및 이미지, 폰트 등 리소스를 페이지에 렌더링합니다. 서버와의 세션이 종료되면 4-way handshake로 종료합니다.

🍕 URI와 URL의 차이점

URI(Uniform Resource Identifier)

  • www.naver.com
  • 리소스의 이름만 나타냅니다

URL(Uniform Resource Locator)

  • www.naver.com/user/1
  • 자원의 위치 뿐만 아니라 자원에 대한 고유 식별자를 포함합니다
  • URI의 하위 개념입니다
profile
's Coding Memory
post-custom-banner

0개의 댓글