Post

클라이언트가 웹사이트에 처음 접근했을 때 발생하는 일

클라이언트가 웹사이트에 처음 접근했을 때 발생하는 일

사용자가 https://www.google.com/ 를 입력하면, 브라우저는 HTTP 프로토콜을 사용해 구글 웹 서버와 통신하려고 한다. HTTP는 OSI 7계층애플리케이션 계층에서 동작하는 프로토콜이다.

이때 브라우저는 요청한 도메인 이름 (www.google.com)에 대한 IP 주소를 알아야 하기 때문에 DNS(Domain Name System) 서버에 질의합니다. 이 질의 과정 또한 애플리케이션 계층에서 이루어지며, DNS 서버는 해당 도메인에 대한 IP 주소 ( 예를 들어 142.250.190.78 ) 를 응답한다.

IP 주소를 얻은 후, 브라우저는 구글 서버와 통신을 시작한다. HTTP는 TCP/IP를 기반으로 작동하므로, 데이터를 주고받기 전에 TCP 3-Way Handshake 과정이 필요하다. 이 단계는 전송 계층(4계층) 에서 이루어진다.

TCP 연결이 성립된 후, 브라우저는 HTTP Request 메시지를 생성하여 구글 서버에 보낸다. 예를 들어, 브라우저는 "GET / HTTP / 1.1" 이라는 요청을 TCP 포로토콜을 통해 80번 포트로 전송한다. 이때 데이터는 패킷(Packet) 형태로 네트워크를 통해 전달된다. 네트워크를 통해 데이터를 전송하기 위해서는 네트워크 계층(3계층) 에서 IP 주소를 사용하고, 데이터 링크 계층(2계층) 에서 MAC 주소를 사용해 패킷이 전송된다.

구글 서버는 클라이언트의 요청을 수신하고 이를 처리한 후, HTTP Response 메시지를 생성하여 응답한다. 서버는 요청이 성공했음을 알리는 200 OK 상태 코드와 함께 웹 페이지 데이터를 전송한다. 브라우저는 이 응답을 받아 HTML, CSS, JS 등의 데이터를 해석하여 화면에 페이지를 렌더링한다.

모든 데이터 전송이 완료되면 클라이언트와 서버는 4-Way Handshake 과정을 거쳐 TCP 연결을 종료한다.

References

This post is licensed under CC BY 4.0 by the author.