![](https://velog.velcdn.com/images/rg970604/post/771bc9e5-89fd-4cc2-a018-2bc56b525c60/image.png)
![](https://velog.velcdn.com/images/rg970604/post/0c2c93ba-81b0-4356-bf64-fa5db82f09d0/image.png)
- 웹 브라우저에 서치를 하는 쿼리문을 보낼 때, 웹 브라우저는 먼저 dns를 조회해 ip와 포트정보를 얻는다.
- 이후 http 요청 메세지를 작성한다.
![](https://velog.velcdn.com/images/rg970604/post/c4fa05d5-de36-4909-9c7d-1491a33ffe0d/image.png)
- 다음과 같은 http 요청 메세지가 생성된다.
- 웹 브라우저가 http 메세지를 생성하고, 소켓 라이브러리를 통해 메세지를 tcp/ip 계층에 전달한다. 이때 tcp 연결을 한 후 데이터를 전달한다. tcp/ip 계층에서는 ip 포트정보가 담긴 패킷을 만들고 패킷 정보를 인터넷으로 전송한다.
![](https://velog.velcdn.com/images/rg970604/post/ca23820e-de7d-41fe-8f0d-bbc752570904/image.png)
- 즉 패킷에는 출발지, 목적지의 ip 및 포트 정보와 함께 웹 브라우저가 만든 http 메세지가 동봉된다.
![](https://velog.velcdn.com/images/rg970604/post/c6cd88d8-5518-44be-a73b-2eda6ff2efac/image.png)
- 브라우저로부터 구글서버에 요청 패킷이 도착하면 구글서버는 패킷을 까서 헤더를 버리고 http 메세지를 확인한다.
![](https://velog.velcdn.com/images/rg970604/post/b6a11cf7-8711-49f9-a6a0-0b02a5d4eafd/image.png)
- 이 메세지에 대한 응답을 데이터베이스에서 찾아 응답 메세지를 만든다.
- 구글서버가 똑같이 tcp/ip를 만들어 패킷을 만들고 웹 브라우저로 보낸다. 웹 브라우저는 이 패킷을 까고 http 메세지를 확인한다.
![](https://velog.velcdn.com/images/rg970604/post/0985a30d-b10f-4dce-83e8-27a0f4d12bc4/image.png)
- http 메세지에는 html 데이터가 들어있고 이 데이터를 웹 브라우저가 렌더링해 보여준다.