DNS(도메인 네임 서버)의 역할을 고려해서,
사용자가 주소를 입력하여 웹 화면을 보기까지의 과정을 통해 알아보겠다.
DNS는 주소창에 특정 주소를 검색했을 때, 해당 주소의 IP를 호출할 때 질의를 날려 확인한다.
1. DNS 조회
DNS 서버에 쿼리를 보낸다고 할 수 있다. DNS 캐시에 정보가 있으면 바로 IP 주소를 가져온다. 아니라면, 통신사(ISP) 혹은 DNS 서버에 질의하여 IP 주소를 얻는다.
2. TCP 연결(3-way handshake)
웹 브라우저가 DNS로 받은 IP 주소로 연결 요청을 보낸다.
TCP 3-way handshake가 이루어진다. SYN(연결요청), SYN-ACK(서버가 요청 수락 및 응답 보냄), ACK(클라이언트가 확인 응답을 보냄)의 과정이다.
3. HTTPS 핸드셰이크(HTTPS 사용시)
입력한 주소가 HTTPS 사용하면, 웹 브라우저-서버 간 TLS 핸드셰이크를 수행한다. HTTPS 핸드셰이크와 같은 말이다. 클라이언트는 서버에 인증서를 요청하고, 서버는 SSL 인증서를 클라이언트에 전달한다. 클라이언트가 인증서 검증 후 암호화 키를 교환하여 안전한 연결을 설정한다.
4. HTTP 요청 전송
TLS 세션이 설정되면, 브라우저가 HTTP GET 요청을 보낸다. 요청에는 헤더 정보(브라우저 정보, 쿠키 등)가 포함된다.
GET / HTTP/1.1
Host: 도메인 주소
5. 서버에서 준비
해당 도메인 주소의 웹 서버(Nginx, Apache 등)이 요청을 받는다. 요청을 처리하고, 데이터(HTML, CSS, JS, 이미지 등)을 준비한다. 데이터를 압축 후 응답한다.
6. HTTP 응답 전송
서버가 웹 브라우저로 HTTP 응답을 보낸다.
HTTP/1.1 200 OK
Content-Type: text/html
응답 본문에 해당 도메인 주소의 페이지 HTML 코드가 들어간다.
7. 브라우저 렌더링
웹 브라우저가 받은 HTML을 파싱해서 페이지 구조를 만들고, 여기에 필요한 CSS, JavaScript, 이미지 파일 등을 다운로드해서 렌더링을 한다. 이제 내가 화면을 볼 수 있다.
8. 네트워크 연결 종료
데이터 전송이 끝나면 TCP 연결은 4-way handshake(FIN, FIN-ACK, ACK 패킷 교환)으로 종료된다.
이 모든 과정이 '보통' 1~2초 내에 이루어진다. 이 말은 오래걸리기도 한다는 뜻이다. 빠르게 이루어진다 정도로 기억한다.

'일기장' 카테고리의 다른 글
GSLB 복습1. 언제 사용할까? 특징 정리 (1) | 2025.01.16 |
---|---|
HCX 격파 도전: 엔지니어링 밋업(1) (0) | 2025.01.13 |
[회고] 2024년 엔지니어 회고 (0) | 2025.01.06 |
생성형 AI 이야기: 용어를 정리해보자 (0) | 2024.11.17 |
[AWS] MLS 준비 (0) | 2024.09.30 |