사용자가 www.google.com을 입력하게 되면 브라우저는 이 도메인 이름을 IP 주소로 변환하는데 이 과정을 DNS 조회라고 한다.
브라우저는 캐시된 DNS 기록을 먼저 확인하고 있다면 그 기록의 IP 주소를 사용하고, 없다면 로컬 DNS 서버에 요청해서 IP 주소를 얻는다.
IP 주소가 확인되면 브라우저는 서버와 TCP 연결을 한다.
TCP(Transmission Control Protocol)는 데이터를 신뢰성 있게 전달하기 위한 프로토콜이다.
브라우저는 SYN 패킷을 보내고, 서버가 SYN-ACK 패킷을 보내고, 브라우저가 다시 ACK 패킷을 보내게 되는데 이 과정을 3-way handshake라고 한다.
2번 과정을 하게 되면 브라우저는 HTTP 또는 HTPPS 요청을 보낸다.
"GET /HTTP/1.1" 같은 형식으로 웹 페이지를 요청하는 메시지이다.
GET / HTTP/1.1
Host: www.google.comGET → "읽어올게요!"라는 뜻
/ → 홈페이지 (루트 경로)
HTTP/1.1 → 사용 중인 HTTP 버전
만약 HTTPS를 사용하게 될 경우에는 보안 연결을 먼저 만들어야 하기 때문에 SSL/TLS 핸드셰이크를 수행한다.
🔐 SSL/TLS 핸드셰이크란?
브라우저와 서버가 “우리 암호화해서 얘기하자!” 하고 약속하는 과정
브라우저 → 서버: “너 인증서 줘봐”
서버 → 브라우저: “이게 내 인증서야 (보안서버 증명)”
브라우저: 인증서 확인 & 암호화 키 협상
서로 공개키/비밀키 기반 암호화 키를 만들고 공유
서버는 요청을 받고 해당 리소스를 브라우저에게 응답으로 보낸다.
응답은 HTTP 응답 코드와 함께 전달되는데 예시로 200 OK 가 있다.
바로 전 게시글에 올라와있는 브라우저 렌더링 파이프라인을 마지막으로 수행한다.
DOM과 CSSOM을 생성하고 렌더 트리를 구성한 뒤에 레이아웃과 페인트 단계를 통해서 웹 페이지가 화면에 표시된다.