Skip to content

Latest commit

 

History

History
75 lines (51 loc) · 4.17 KB

File metadata and controls

75 lines (51 loc) · 4.17 KB

웹 브라우저에 https://www.google.com URL 을 입력 후 enter 를 쳤을 때 일어나는 과정을 최대한 상세하게 설명해주세요.

엘리

1. 브라우저 주소창에 URL(https://www.google.com)을 입력하고 Enter 키를 누른다.

2. 브라우저는 DNS 캐시를 조회해 도메인(www.google.com)에 매핑되는 IP 주소를 찾는다.

  • 브라우저 DNS 캐시
  • OS DNS 캐시 (hosts 파일)
  • 라우터 DNS 서버

3. 캐시에서 못 찾으면 DNS 서버에 해당 도메인에 매핑되는 IP 주소를 찾아달라고 요청한다.

  • 클라이언트와 가장 가까운 DNS 서버에 IP 주소 찾기를 요청한다.
  • 가장 가까운 DNS 서버(DNS Recursor)는 Recursive Query를 진행해 IP 주소를 찾아온다.
  • Root Name Server -> .com Name Server -> google.com Name Server

4. 웹 서버로 HTTP 요청을 보낸다.

  • TCP 통신을 위해 클라이언트와 서버간의 소켓을 연결하고, TCP Three-way Handshake 과정을 거친다.
  • www.google.com 웹 페이지에 대한 HTTP 요청 메시지를 만들고 GET 요청을 보낸다.
  • HTTP 메시지 -> Socket 라이브러리 -> TCP/IP 프로토콜 스택 -> 패킷 -> LAN 어뎁터 -> 전기신호

5. 웹 서버가 요청을 처리하고 다시 HTTP 응답을 보낸다.

  • 요청이 LAN에 도착하면 해당 요청을 검사해 서버로 보낼지 결정한다.
  • 웹 서버 앞에 캐시 서버가 있는 경우 캐시 서버가 요청을 처리한다.
  • 캐시 서버에서 요청을 처리하지 못한 경우 웹 서버에서 요청을 처리한다.
  • HTTP 응답 메시지를 만들고 클라이언트에게 다시 전송한다.

6. 브라우저가 HTML 콘텐츠를 렌더링한다.

  • 응답 헤더의 content-type을 확인해 렌더링 방식을 결정한다.
  • HTML 구조를 먼저 렌더링하고, HTML Tag를 확인하면서 추가적으로 필요한 웹 패이지 요소들(Image, CSS, JS 파일 등)을 요청해 불러온다.
  • 웹 페이지 요소 중 정적 컨텐츠들의 경우 브라우저에 캐싱된다.

참고 자료


💬 크루들의 질문

URI와 URL의 차이는 무엇인가요?

URI(Uniform Resource Identifier)

  • 특정 리소스를 식별하는 통합 자원 식별자를 의미한다.
  • 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스이다.

URL(Uniform Resource Locator)

  • 웹 주소를 말한다.
  • 컴퓨터 네트워크 상에서 리소스가 어디에 있는지 알려주기 위한 규약이다.
  • URI의 서브셋이다.

image

DNS 캐시 등록 과정은 어떻게 되나요?

브라우저, OS 단에서는 DNS 서버에 질의를 할 때마다 캐시를 수행합니다.
캐시에서 찾으면 이를 사용하고, 캐시에 없다면 DNS 서버에 질의 후 이를 캐시에 저장하는 방식입니다.

DNS가 캐싱되는 시간은 TTL(Time-to-Live)에 의존합니다.
터미널에서 dig 명령어로 TTL을 확인할 수 있습니다.
naver.com의 경우 300초 동안 캐싱됩니다.

Screen Shot 2022-09-13 at 1 16 38 AM

(라우터 단에서의 자료는 아직 찾지 못했지만 비슷하게 동작하지 않을까 싶습니다.)