📢1
브라우저는 URL에 적힌 값을 Parsing하여 HTTP Request Message를 만들고 👉 OS에 전송 요청을 한다. 이 때, Domain으로 요청을 보낼 수 없기에 DNS Lookup 과정을 수행한다.
📢2
DNS Lookup 과정에서 크롬 브라우저의 경우 브라우저 👉 hosts 파일 👉 DNS cache 순서로 Domain에 매칭되는 IP를 찾는다. 일반적인 DNS Lookup 과정은 Root Domain Server 👉 Sub Domain Server 순서로 찾게 된다.
📢3
Domain으로의 요청은 Protocol Stack (OS에 내장된 네트워크 제어용 소프트웨어) 에 의해서 패킷에 담기고 👉 패킷에 제어 정보를 덧붙여 LAN Adapter에 전송한다. 👉 LAN Adapter는 이를 전기신호로 변환시켜 송출한다.
📢4
패킷은 Switching Hub 등을 경유하여 👉 인터넷 접속용 Router에서 ISP로 전달되고 👉 인터넷으로 이동한다. Access 회선에 의해 통신사용 Router로 운반되고 👉 인터넷의 핵심부로 전달된다. 고속 Router들 사이로 목적지까지 패킷이 흘러들어간다.
📢5
인터넷의 핵심부를 통과한 패킷은 목적지 LAN에 도착하고, 방화벽이 패킷을 검사한 후 Cache Server로 보내 Web Server에 갈 필요가 있는지 검사한다.
📢6
Web Server에 도착한 패킷을 Protocol Stack이 추출하여 메시지를 복원하고 Web Server Application에 넘긴다. Web Server Application은 요청에 대한 응답 데이터를 작성하여 클라이언트로 회송한다 (전달된 방식 그대로 전송된다).
브라우저는 사용자가 주소창에 입력한 정보가 사이트 주소인지 검색어인지 확인한다.
📌DNS
📌과정
- 브라우저 캐시를 확인한다
- 브라우저는 일정기간 동안의 DNS 기록을 저장하고 있다.
- 브라우저는 OS 캐시를 확인한다
- 브라우저 캐시에서 웹사이트 이름의 ip주소가 발견 안될 경우, 브라우저는 systemcall을 통해 OS가 저장하는 DNS 기록들의 캐시에 접근한다
- Router 캐시를 확인한다
- 컴퓨터에 DNS 기록을 찾지 못하면, 브라우저는 DNS 기록을 캐싱하는 Router와 통신하여 찾는다
- ISP 캐시를 확인한다
- 브라우저는 DNS 서버를 구축하고 있는 ISP에서 DNS 기록을 찾는다
❓ 많은 곳에서 캐시를 저장하는 이유
📌DNS query
📌ISP의 DNS서버
📌통상적인 DNS의 경우 도메인 이름 구조 기반의 검색 과정


📌www.google.com
root name server에 연락한다root name server는 `.com 도메인 name server로 redirect한다.com name server는 google.com name server로 redirect한다google.com name server 는 DNS 기록에서 www.google.com 에 매칭되는 IP주소를 찾고, DNS recursor로 보낸다패킷 = 보내는 요청의 내용 + DNS recursor 의 IP 주소 으로 이뤄짐브라우저는 올바른 IP 주소를 받게 되면, 서버와 connection을 빌드한다
📌인터넷 프로토콜
📌TCP/IP 3-way handshake
SYN 과 ACK 메시지들로 3번의 프로세스를 거친 후 연결된다SYN 패킷을 서버에 보내고, connection을 open해 달라고 요청한다SYN/ACK 패킷으로 응답한다.SYN/ACK 패킷을 서버로부터 받게 되면 서버에게 잘 받았다는 의미로 ACK 패킷을 응답한다TCP connection이 완성되면, 데이터를 전송한다
📌Request
서버는 Apache와 같은 웹서버를 가지고 있다
📌Request Handler
📌서버의 Response

📌브라우저는 단계적으로 HTML content를 보여준다