brunch

웹 페이지 링크를 클릭하면 발생하는 일

웹 서버에 브라우저 사이엔 어떤 일이 생길까요?

by 테크유람

브라우저를 열고 네이버나 구글과 같은 검색 엔진에 접속하여 검색을 원하는 검색어를 입력하여 나온 수많은 웹 페이지 링크 중 하나를 클릭하면 어떤 일이 발생할까요?


먼저 링크에 걸려있는 인터넷 주소를 알아봅시다. 인터넷 주소는 다음과 같이 사용하는 프로토콜, 도메인, 경로로 이루어져 있습니다.


image.png?type=w1


다시 본론으로 돌아와서 저렇게 생긴 링크 주소를 클릭하면 발생하는 일을 순서대로 나열하면 다음과 같습니다.


① 링크 주소의 도메인에 접속을 위해 DNS에 IP 주소를 질의합니다.

브라우저는 제일 먼저 blog.naver.com이라는 도메인 주소의 IP 주소를 알아내야 합니다. 도메인 주소는 사람이 이해하고 기억할 수 있는 수단이고 브라우저는 이해할 수 없는 주소거든요. 이때 IP 주소를 알기 위해 사용하는 시스템이 DNS(Domain Name System)입니다. DNS가 알려준 IP 주소는 웹 서버의 주소일 수도 있고 인터넷상의 CDN 엣지 서버 혹은 프락시(proxy) 서버 일 수도 있습니다. (일단 웹 서버인 것으로 가정..)


image.png?type=w1


② DNS에서 받은 IP(웹 서버 주소)로 TCP 연결을 시도합니다. 웹에 사용하는 HTTP가 TCP이기 때문입니다. TCP는 안정적이고 연결 지향적인 프로토콜이므로 연결 세션 설정을 위해 3Way Handshake라 부르는 3단계의 연결 과정을 시작합니다.


③ 브라우저(클라이언트)와 웹 서버(서버)는 TCP 3Way Handshake를 통해 TCP 연결을 맺습니다.

- SYN은 브라우저가 웹 서버에게 연결을 요청하는 신호입니다.

- SYN/ACK는 웹 서버가 브라우저에게 연결을 허락하는 과정입니다.

- SYN/ACK를 받은 브라우저는 ACK 응답을 하면서 연결 설정을 위한 준비를 합니다.


image.png?type=w1


④ HTTPS를 사용하므로 브라우저와 웹 서버는 SSL Handshake를 통해 HTTPS 연결을 맺습니다. 이 과정을 통해 브라우저와 웹 서버는 서로 암호화 통신을 시작할 수 있도록 서로의 인증서와 신분을 확인하고 어떤 암호화 방식을 사용할지 결정합니다.


⑤ 생성된 HTTPS 연결을 통해 브라우저는 GET 메서드로 해당 URL의 콘텐츠를 웹 서버에 요청합니다. 브라우저가 웹 서버에게 요청하는 종류(type)을 메서드(method)라고 하는데, 단순하게 웹 페이지 주소를 통해 콘텐츠를 요청하는 메서드가 바로 "GET"입니다.


image.png?type=w1


⑥ 웹 서버는 요청된 도메인, 디렉터리, 자원 경로를 통해 해당 콘텐츠를 찾아 브라우저에 전달합니다. 정상적으로 콘텐츠를 전달하는 경우 웹 서버의 응답 코드는 "200 OK"이며 HTTP 헤더와 HTTP 바디(혹은 payload)로 이루어진 HTTP 메시지를 브라우저에게 보냅니다.

image.png?type=w1


⑦ 브라우저는 웹 서버에게 받은 HTTP 메시지를 해석합니다. 헤더에서 콘텐츠의 세부 정보를 얻고 바디에서 얻은 HTML을 해석하여 브라우저 화면에 렌더링 합니다.

image.png?type=w1


⑧ (사용된 HTTPS 연결을 끊거나 재사용을 위해 유지합니다.)


이상으로 링크를 클릭하였을 때 브라우저(클라이언트)와 웹 서버의 작동을 (아주 간략하게) 알아보았습니다.








keyword
이전 02화네이버 QR 체크인에는 어떤 개인 정보가 담겨있을까?