본문 바로가기

웹 인프라

브라우저에 URL을 입력하면 생기는 일

안녕하세요:) 오늘은 '브라우저에 URL을 입력하는 생기는 일'에 대해 다루어 보겠습니다.

 

브라우저에 URL을 입력하면 무슨 일이 일어날까요? 

간단히 예를 들어보자면, www.naver.com을 입력하면 네이버 홈페이지로 이동이 됩니다. 이 글에서는 naver URL이 입력되고 홈페이지로 이동하기까지의 과정을 다뤄보도록 하겠습니다.

 

내용의 이해를 돕기 위해 간단한 이미지를 기반으로 내용을 풀어보겠습니다.

이해를 돕기 위한 이미지

 

1. PC(Client)

URL 입력 참고 이미지

먼저, 클라이언트가 PC를 통해 브라우저에 URL을 입력합니다. 

URL(Uniform Resource Locator)은 웹 리소스의 위치를 지정하는 문자열이며, 브라우저에게 어떤 서버에서 어떤 리소스를 요청할지를 알려줍니다. www.naver.com은 www라는 이름의 컴퓨터에서 naver.com이라는 도메인에 접속하겠다는 뜻입니다. 

 

2. DNS(Domain Name Service) 질의

DNS질의란, 네임 서버에서 www.naver.com 에 해당하는 실제 서버주소를 찾아서 브라우저에서 전달하는 과정을 말합니다.

브라우저에 URL을 입력하여 naver.com이라는 도메인에 접속하기 위해서는 해당 도메인의 IP 주소를 알아야 합니다.

 

도메인에 접속하기 위한 IP주소를 얻는 경우는 다음과 같이 세 가지로 나눌 수 있습니다.

첫 째, 운영체제가 로컬 host파일에서 해당 도메인에 대한 IP주소를 확인했을 경우

(컴퓨터마다 host.txt라는 파일이 있는데 DNS질의를 시도하기 전 운영체제가 해당 파일들을 확인합니다.)

둘 째, host 파일에 정보가 없을 때, 운영체제가 로컬 DNS 캐시를 확인하여 이전에 질의된 결과를 확인했을 경우

셋 째, 캐시에도 없을 때, 로컬 DNS 서버(일반적으로 ISP에서 제공)에 질의를 보내는 경우

 

도메인 IP주소를 DNS캐시나 host.txt파일에서 확인했을 경우는 NAT 과정을 거치지 않고 바로 해당 도메인에 접속할 수 있지만, 그렇지 않다면 NAT과정을 거쳐서 DNS 질의를 한 후 도메인 IP 주소를 얻어야 합니다.

 

3. TCP(Transmission Control Protocol) 연결

IP주소를 획득했다면 이제 클라이언트(PC)쪽에서 도메인 IP 쪽 서버로 TCP연결을 시도합니다.

 

여기서는 왜 TCP 연결을 시도할까요?

웹 상에서는 데이터를 주고받기 위해 기본적으로 HTTP 프로토콜을 사용하는데, HTTP는 TCP 연결을 기반으로 하기 때문입니다.

 

TCP 연결은 3-way 핸드셰이크 과정을 통해 연결됩니다. 

TCP 3-way handshake

 

4. HTTP Request 및 서버 Response

TCP 연결이 성공하면 클라이언트(PC)는 HTTP Request(GET Method, Client 정보 등의 헤더 정보)를 서버에 전송합니다. 이 단계에서는 클라이언트가 서버로부터 원하는 리소스를 요청하고, 서버가 그에 대한 응답을 반환하는 과정을 포함합니다.

 

1. HTTP Requset

해당 요청의 구조는 일반적으로 요청 메서드, URL, HTTP 버전, 헤더, 그리고 본문으로 구성됩니다. 

가장 일반적인 요청 메서드는 GET, POST, PUT, DELETE 등이 있습니다.

(보통 GET요청을 사용하여 서버에서 특정 리소스를 요청하는데, 브라우저의 정보, 쿠기, 참조 페이지 등 헤더 정보가 포함됩니다.)

(POST 요청은 서버에 데이터를 전송할 때 사용되는 메서드로, 주로 폼 체출 시 사용됩니다.)

 

2. 서버 Response

HTTP 응답의 구조는 클라이언트 요청에 대한 응답을 보내는데, 상태 코드, 응답 헤더, 그리고 본문으로 구성됩니다.

여기서 상태 코드란, 200 OK, 404 Not Found 등이 있으며, 본문에는 요청된 리소스(이미지, JSON, HTML 등)가 포함되어 있습니다.

 

3. 브라우저 처리

브라우저는 서버로부터 받은 응답을 해석하고, 이를 기반으로 웹 페이지를 렌더링하여 사용자에게 표시합니다. 만약 CSS, JS, IMG 등 추가적인 리소스가 필요하면, 브라우저는 이를 다시 서버에 요청합니다.

 

모든 과정을 그려놓은 참고 이미지

 

 

끝내는 말

위와 같은 과정을 통해 사용자가 브라우저에 URL을 입력했을 때 서버와의 통신이 이루어지고, 웹 페이지가 사용자에게 표시되는 전체 과정을 살펴보았습니다. 웹 기술의 핵심이 되는 기본적인 흐름에 대해 작성해보았는데 도움이 되셨을까요? 

 

다음 글에서는 이 과정을 더욱 심화하여, 최적화(캐싱, CDN, GSLB)에 대한 주제를 다루어 보겠습니다. 

 

읽어주셔서 감사합니다 :)