-
브라우저에 네이버 URL을 입력했을 때 벌어지는 일CS 2025. 2. 16. 22:38
[요약]
- URL 파싱 → 캐싱된 DNS 기록 확인 → DNS 조회
- 라우터를 통해 해당 서버의 게이트웨이까지 이동 -> ARP를 통해 IP 주소를 MAC 주소로 변환 네이버 서버 도달
- 대상 서버와 TCP 소켓 연결 -> HTTP(HTTPS) 프로토콜 요청 & 응답 -> 브라우저에서 응답 해석해서 보여준다!
[1] URL 파싱
프로토콜, 호스트 이름, 경로, 포트 등으로 URL의 구조를 해석합니다.
이때 파싱한 호스트 이름을 캐싱된 DNS 기록 확인 단계에서 사용합니다.
[2] 캐싱된 DNS 기록 확인
브라우저는 DNS 해석 과정을 단축하기 위해 캐싱된 DNS 기록을 먼저 확인합니다.
캐시에 IP주소가 존재하면, DNS 쿼리를 추가하지 않고, 바로 연결을 시도합니다.
- 브라우저 캐시 -> OS 캐시 -> 라우터 캐시 -> ISP 캐시 순서로 확인합니다.
[3] DNS 조회
캐시에 해당 URL(호스트 네임)이 존재하지 않으면, DNS 서버에 요청해 해당 URL을 IP 주소로 변환합니다.
이때 DNS란, 도메인 이름과 IP 주소를 매핑해주는 서버입니다.
[DNS 서버로 요청하는 과정]
[Root DNS] → [.com DNS] → [.naver DNS] → [.www DNS]
위와 같은 과정을 거쳐 완벽한 주소를 찾아 IP 주소를 매핑합니다.
[4] 라우터를 통해 해당 서버의 게이트웨이까지 이동
*게이트웨이: 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 SW를 두루 일컫는 용어
DNS 서버한테 IP 주소를 받았으니 해당 서버로 요청을 보냅니다.
이 요청은 네트워크 장비인 라우터의 라우팅을 통해 네트워크를 타고 이루어집니다.
각각의 라우터에 있는 라우팅 테이블의 IP를 기반으로 패킷을 전달해 나갑니다.
[5] ARP를 통해 IP 주소를 MAC 주소로 변환
*ARP: IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜
실질적인 통신을 하기 위해서는 논리 주소인 IP 주소를 물리 주소인 MAC 주소로 변환해야 합니다.
이를 위해 해당 네트워크 내에서 ARP 요청을 브로드캐스팅합니다.
해당 IP 주소를 가지고 있는 서버는 자신의 MAC 주소를 응답합니다.
이로써 실제 네이버의 서버에 도달하게 됩니다!
[6] 대상 서버와 TCP 소켓 연결
찾은 대상 서버와 통신하기 위해 TCP 소켓 연결을 진행합니다.
소켓 연결은 3-way handshake 과정을 통해 이루어집니다.
HTTPS 요청인 경우 암호화 통신을 위한 TLS 핸드쉐이킹을 추가합니다.
[7] HTTP(HTTPS) 프로토콜 요청 & 응답
연결이 되었으니 해당 페이지(www.naver.com)를 달라고 서버에 요청합니다.
서버는 요청에 대한 응답을 생성하여 브라우저에 전달합니다.
[8] 브라우저에서 응답 해석
서버의 응답 내용은 HTML, CSS, Javascript 등으로 이루어져 있습니다.
따라서 일반 사용자도 볼 수 있도록 이를 해석하여 페이지를 보여주게 됩니다!
최근에 면접을 봤습니다. 해당 기업에서 정말 많은.. 질문을 받았습니다. 2:1 면접이었는데 1시간 넘게.. 봤어요..
30분 넘어가니까 목이 건조해져서 말하다가 쇳소리까지 났습니다. (+ 긴장해서 목탄것두 잇서용 ㅎㅎ)
아무튼 CS 관련 질문도 매우 많이 받았고.. 제대로 대답하지 못한 질문도 많았어요. 많이 아쉽지만 CS 공부를 더 열심히 하게 된 계기가 되었습니다 :) 굳'CS' 카테고리의 다른 글
[CS] 디자인 패턴과 프로그래밍 패러다임 (2) 2024.10.22 RabbitMQ에 대하여 (0) 2024.03.03