📢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를 보여준다