URL 입력 후의 네트워크 흐름
주소 입력창에 URL을 입력한 후의 네트워크상 흐름에 대해서 알아보자.
1. 브라우저에서 URL을 해석한다.
https://kimnamhun.com/ 을 입력했을 때,
프로토콜 → ( ”https” ) 하이퍼 텍스트 보안 전송 규약을 이용
자원 → ( “/” ) 인덱스(메인)페이지 불러오기
2. 해당 URL에 상응하는 IP 주소를 DNS 기록 캐시를 확인한다.
DNS(Domain Name System)은 URL과 그것이 연결된 IP 주소를 갖고 있는 데이터베이스이다.
복잡한 숫자로 조합되어 있는 IP는 사람이 일일이 기억하고 접속할 때마다 입력할 수 없으니,
IP주소와 URL을 연결해 URL 연결 시 해당 사이트의 IP에 접속할 수 있다.
DNS가 IP와 URL을 연결해주는 역할을 하고, URL 입력시 DNS 기록 캐시를 확인 후,
IP주소를 받아와 해당 사이트에 접속한다.
3. 해당 URL의 캐시가 없다면, 해당 URL의 IP주소를 요청하는 DNS query를 날린다.
2번에서 캐시를 확인하지 못했다면, DNS서버에 query를 날려 해당 URL의 IP 주소를 찾아낸다.
4. TCP를 통해 socket 통신을 한다.
TCP/IP three-way handshake과정을 통해 TCP 연결을 한다.
5. 웹 서버에 HTTP 요청을 보낸다.
GET, POST등 HTTP 요청을 보내고, 서버는 그에 따른 작업을 실행 후 응답을 보낸다.
6. 브라우저가 UI를 나타낸다.
5번에서 서버에게 받은 리소스(HTML, CSS, JS 등)을 이용해 웹 UI를 나타낸다.