이해를 돕기 위해 반복되는 경우가 있더라도 그림의 순서에 맞게 따라가며 작성했다.
특정 웹사이트에 접속하기 위해서는 'www.google.com' 과 같은 도메인(Domain)이 아닌 IP 주소의 진짜 주소가 필요하다.
하지만 IP 주소는 외우기가 힘들고, 가독성이 떨어지기 때문에 도메인 명으로 웹페이지에 접속할 수 있도록 한다.
URL(Uniform Resource Locator)란 인터넷에서 특정 웹 사이트, 파일 또는 페이지의 위치를 나타낸다.
진짜 주소인 IP 주소를 찾기 위해 DNS 서버에서 찾는다.
캐시를 통해 Local DNS에게 IP 주소를 물어보고 없다면 Root DNS 서버에게 물어본다.
DNS는 Doman Name System의 약자로 URL의 이름과 IP주소를 저장하고 있는 데이터베이스이다.
Root DNS (루트 네임서버) 란? 인터넷의 도메인 네임 시스템의 루트 존이다. 루트 존의 레코드의 요청에 직접 응답하고 적절한 최상위 도메인에 대해 권한이 있는 네임 서버 목록을 반환함으로써 다른 요청에 응답한다
이 단계에서 브라우저(클라이언트)가 서버와 TCP connection을 한다.
HTTP 연결의 경우 대표적인 인터넷 프로토콜인 TCP를 일반적으로 사용한다.
TCP/IP 3-way handshake라는 프로세스를 통해서 클라이언트와 서버간 connection이 이뤄지게 된다.
웹 페이지 URL 정보와 전달받은 IP 주소는 HTTP 프로토콜을 사용하여 HTTP 요청 메시지를 생성한다.
이렇게 생성된 HTTP 요청 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 해당 IP 주소의 컴퓨터로 전송된다.
TCP/IP 의 자세한 사항은 TCP & UDP 를 참고하면 된다.
HTTP 의 자세한 사항은 HTTP(HyperText Transfer Protocol) 를 참고하면 된다.
이렇게 생성된 HTTP 응답 메시지는 TCP 프로토콜을 사용하여 인터넷을 거쳐 원래 컴퓨터로 전송된다.
서버의 HTTP 응답 메시지에는 요청한 웹페이지, 상태코드, 쿠키, 개인정보 등이 포함되어있다.
브라우저는 html content를 단계적으로 렌더링 하여 노출한다.
해당 contents 들은 브라우저에 의해 캐싱되어 나중에 해당 페이지 재방문시 서버에 재요청하지 않도록 한다.
그 이후, 'www.google.com' 웹 페이지가 노출된다.