-
[Network]웹 브라우저의 주소창에 URL을 입력하면 일어나는 일CS/Network 2022. 7. 24. 20:55
- 브라우저가 URL을 분석한다. (HTTPS 여부, 도메인 주소, PORT 번호, 파일의 경로 등)
- DNS에서 IP 주소를 가져온다.
- 브라우저의 캐시에는 DNS 기록들이 저장되어 있다. 가장 먼저 이곳을 확인한다.
- OS 캐시, router 캐시, ISP 캐시 순서대로 최대한 빠르게 DNS 기록을 찾는다.
- 캐시 서버에 DNS 기록이 없다면 로컬 DNS 서버에서 URL 주소에 해당하는 IP 주소를 요청한다
- 로컬 DNS 서버에 없다면 로컬 DNS 서버가 IP 주소를 찾기 위해 루트 DNS 서버, 도메인 DNS 서버, 등 하위 DNS 서버로 차례대로 요청한다.
- IP 주소를 이용해 라우터에서 포워딩을 한다. 라우터의 라우팅 프로세서가 만든 라우팅 테이블을 이용한다.
- ARP 프로토콜을 통해 논리적인 주소인 IP 주소를 물리 주소인 MAC 주소로 변환한다.
- 브로드캐스트를 통해 ARP 요청 패킷을 전송하여 해당 IP 주소(L3)를 갖고 있는 노드가 자신의 MAC 주소(L2)를 알려준다.
- WHY? IP 주소는 고유한 주소가 아니다. Dynamic Host Configuration Protocol에 의해 동적으로 할당된 논리적인 주소다. 네트워크 인터페이스 카드의 고유한 번호 MAC 주소를 알아야 한다.)
- MAC 주소를 이용해 알아낸 호스트와 TCP 소켓을 연결한다. 3-way handshake를 통해 연결.
- 클라이언트가 SYN 패킷을 전송 → 서버가 SYN, ACK 패킷 응답 → 클라이언트가 ACK 패킷을 전송
- 만약 HTTPS 요청이라면 TLS handshake 과정이 추가된다.
- TCP 연결이 확정되었다면 클라이언트는 HTTP 프로토콜을 이용하여 서버에게 요청한다. (URL 입력이라면 GET 요청..)
- 서버는 요청이 무엇인지 파악하고 HTTP 프로토콜을 이용해 응답한다.
- 브라우저가 HTML 컨텐츠를 렌더링해서 보여준다.
'CS > Network' 카테고리의 다른 글
[Network]다중화와 역다중화란 무엇인가? (0) 2022.07.26 [Network]애플리케이션 계층과 HTTP (0) 2022.07.26 [Network]패킷 교환과 회선 교환이란? (0) 2022.07.25 [Network]DNS의 동작 구조 (0) 2022.07.24 [Network]프로토콜 계층화란? (0) 2022.07.14