저번 시간에 이어, 이번엔 주소창에 www.google.com을 검색했을 때 어떤 현상이 발생하는지, 네트워크 관점에서 알아보는 시간을 갖겠습니다. 이 질문은 한동안 유행했던 면접 질문으로, 면접자의 네트워크 지식을 면밀히 파악할 수 있습니다. 답변 유형은 다양하며 2 가지 답변을 준비했습니다. 네트워크 기초를 모른다고 생각하시면, 네트워크 카테고리의 첫번째 포스팅부터 참고하시길 권해드립니다.
Q: www.google.com을 주소창에 검색하면 어떻게 되나요?
일련의 과정을 설명해보겠습니다.
- 사용자가 브라우저에 URL을 입력합니다.
- 브라우저는 DNS를 통해 서버의 IP를 찾습니다.
- Client에서 HTTP request메시지로 TCP/IP패킷을 생성하고 Server로 전송합니다.
- Server에서 HTTP request에 대한 HTTP response 메시지로 TCP/IP패킷을 생성하고 Client로 전송합니다.
- 도착한 HTTP response message는 웹 브라우저에 의해 출력됩니다.(렌더링)
Q: www.google.com을 주소창에 검색하면 어떻게 되는지 네트워크 관점에서 상세히 설명해주세요.
- 사용자가 브라우저에서 URL을 입력하면, HTTP request message를 생성합니다.
- IP주소를 알아야 전송할 수 있으므로, DNS lookup을 통해 해당 domain의 server IP주소를 알아냅니다.
- 반환된 IP주소(server IP)로 HTTP 요청 메시지를 TCP/IP층에 전달하면, 헤더를 추가하여 TCP/IP 패킷을 생성합니다.
- 해당 패킷은 전기신호로 랜선을 통해 네트워크로 전송되고, 목적지 IP에 도달합니다.
- server에 도착한 패킷은 unpacking을 통해 message를 복원하고 server의 process로 전달됩니다.
- server의 process는 HTTP 요청 메시지에 대한 response data를 가지고 HTTP 응답 메시지를 생성합니다.
- HTTP 응답 메시지를 전달 받은 방식 그대로 Client IP로 전송합니다.
- HTTP response 메시지에 담긴 데이터를 토대로 웹브라우저에서 HTML 렌더링을 하여 화면이 출력됩니다.
마치며
www.google.com을 검색했을 때, 어떤 일이 발생하는지를 알아봤습니다. 단계별로 파악해보면, 그렇게 어려운 내용은 없지만, 차례대로 내용을 풀어서 설명하는 것은, 준비가 되지 않으면 많이 어려울 것으로 생각합니다. 네트워크 기초를 기반으로 흐름을 상상해보며 설명하는 것을 연습하고 넘어가시길 권해드립니다.
다음 시간에는, 쿠키(Cookie), 세션(Session), JWT(JSON Web Token)에 대해 알아보겠습니다.
답글 남기기