https://www.google.com:443/search?q=hello&hl=ko
이전에 위의 URL을 예로 들어 설명을 했었다.
DNS를 조회해서 www.google.com을 찾는다. 예로 IP가 200.200.200.2라고 하자
https로 시작하기에 443port는 생략이 가능하다.
내 IP(예로 100.100.100.1이라고 하자)에서 위의 URL을 입력했기 때문에
구글 서버에 200.200.200.2로 HTTP 요청 메시지를 보낸다.
HTTP요청 메세지는
GET/search?q=hello&hl=ko HTTP/1.1 Host:www.google.com 이라는 형태로 만들어진다.
URL에 입력한 순간 클라이언트 IP에 웹브라우저는 HTTP메시지를 생성한다.
이제 이걸 SOCKET라이브러리를 통해 전달한다.
TCP/IP 프로토콜에서는 HTTP메시지를 패킷으로 씌워서 인터넷으로 흘러들어가게 된다.
그럼 이제 출발지IP와 도착지IP 정보가 담겨진 메시지를 인터넷 노드를 통해 이동해서
구글 서버 200.200.200.2로 도착하면 서버에서 이제 HTTP 응답메시지를 만들어준다.
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length:3423
<html>
<body>...</body>
</html>
위와 같이 응답메세지의 형태를 한 응답패킷이 클라이언트에 도착하면
클라이언트 IP에서는 HTML을 렌더링하고 결과를 볼 수 있게 된다!
전체적으로 이런 구조로 웹브라우저가 요청과 응답을 하게되는것이다.
출처 : 모든 개발자를 위한 HTTP 웹 기본 지식(김영한 강사님 인프런 강의)