Skip to content

Sequence of events when domain address is entered into a web browser

1. DNS 조회

브라우저에 www.google.com을 입력하면, 먼저 도메인 이름을 IP 주소로 변환하는 과정이 시작됩니다. 이를 DNS 조회라고 하며, 브라우저는 캐시된 DNS 기록을 확인하거나 로컬 DNS 서버를 통해 IP 주소를 요청합니다. ISP의 DNS 서버가 최종적으로 IP 주소를 반환하며, 이 정보는 브라우저가 서버와 통신할 수 있도록 합니다.

2. TCP 연결 수립

DNS 조회를 통해 IP 주소를 얻은 후, 브라우저는 해당 서버와 TCP 연결을 설정합니다. 이 과정은 3-way 핸드셰이크로 이루어지며, 클라이언트는 SYN 패킷을 보내고, 서버는 SYN-ACK 패킷으로 응답하며, 마지막으로 클라이언트가 ACK 패킷을 전송하여 연결이 완료됩니다. 이를 통해 데이터 전송을 위한 안정적인 통신 채널이 만들어집니다.

3. HTTP 요청 및 HTTPS 핸드셰이크

TCP 연결이 완료되면 브라우저는 HTTP 또는 HTTPS 요청을 보냅니다. HTTPS의 경우, SSL/TLS 핸드셰이크가 추가로 수행되어 보안 인증서 교환과 암호화 키 협상이 이루어집니다. 이후 브라우저는 "GET / HTTP/1.1"과 같은 요청 메시지를 서버에 전달합니다.

4. 서버 응답

웹 서버는 브라우저의 요청을 처리하고 HTML 문서와 함께 필요한 리소스(예: 이미지, CSS, JavaScript)를 반환합니다. 이 응답은 HTTP 상태 코드(예: 200 OK)와 함께 전달되며, 브라우저는 이를 기반으로 웹 페이지를 구성하기 시작합니다.

5. 브라우저 렌더링

브라우저는 받은 HTML 문서를 파싱하여 DOM 트리를 생성하고, CSSOM을 결합하여 렌더 트리를 구성합니다. 이후 레이아웃과 페인트 단계를 거쳐 웹 페이지가 화면에 표시됩니다. 추가 리소스가 필요한 경우, 브라우저는 추가 HTTP 요청을 보내고 이를 처리하여 최종적으로 사용자에게 완성된 페이지를 보여줍니다.

결론

www.google.com을 입력하는 간단한 행동은 복잡한 네트워크 통신과 브라우저 내부 처리 과정을 포함합니다. DNS 조회부터 TCP 연결, HTTP 요청 및 응답, 그리고 렌더링까지의 일련의 과정은 사용자가 웹 페이지를 빠르고 정확하게 볼 수 있도록 지원합니다. 이러한 과정은 웹 개발과 네트워크 문제 해결에 대한 이해를 높이는 데 중요한 역할을 합니다.