웹 브라우저가 어떻게 요청하고 응답 받아 우리게에 웹사이트를 보여주는지에 대해 포스팅 해보겠습니다.
https://www.google.com:443/search?q=hello&hl=ko
우리는 위와 같은 URL을 웹브라우저에게 요청합니다.
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| 1. 도메인네임시스템에 호스트가 가진 IP주소를 조회합니다. 2. 브라우저는 정해진 프로토콜 + 호스트 + 쿼리스트링을 이용해 HTTP요청 메시지를 생성합니다. | 생성된 메시지의 모양은 이러합니다. 요청방식/쿼리스트링/HTTP버전 요청할 도메인 | 1. 애플리케이션(웹브라우저)가 HTTP 메시지를 생성합니다. 2. socket라이브러리는 요청한 도메인에게 3way handshake를 통해 논리적 연결을 하고, 생성한 HTTP 메시지를 OS(TCP/IP)에 전달합니다. 3.OS(TCP/IP) 전달받은 HTTP메시지 (데이터) 위에 TCP/IP 정보를 감싸 패킷을 생성하고 네트워크인터페이스에 전달합니다. 4.네트워크 인터페이스는 전달받은 데이터를 인터넷 노드로 흘려보냅니다. | 최종적으로 생성된 데이터 패킷의 형태는 간략하게 표현해서 이렇습니다. |
![]() | ![]() ![]() | ![]() | ![]() |
|---|---|---|---|
| 1. 인터넷 노드에 흘려보내진 패킷은 수많은 노드를 거쳐 요청한 서버(구글서버)에 도착하게됩니다. | 1. 요청을 보낸 서버에서(구글서버) 패킷의 정보들을 확인하고 요청한 데이터를 찾습니다. 2. HTTP 요청에 대한 응답 메시지를 만들어 냅니다. | 1.구글 서버에서 응답패킷에 응답메시지를 담아 보내옵니다. 2.응답 메시지에는 여러 정보가 담겨있는데, 그 중 하나가 html 데이터 입니다.( 내 브라우저에 표시될 html 데이터 ) | 1. 브라우저는 응답 메시지를 확인하여 HTML 데이터를 확인하고 렌더링 해줍니다. |