"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 브라우저에 URL을 입력하면 어떻게 되나요?

브라우저에 URL을 입력하면 어떻게 되나요?

2024-11-05에 게시됨
검색:604

브라우저에 URL을 입력하고 Enter 키를 누르면 뒤에서 무슨 일이 일어나는지 궁금한 적이 있습니까? 이 프로세스는 요청한 웹 페이지를 제공하기 위해 원활하게 함께 작동하는 여러 단계가 포함되어 생각보다 더 복잡합니다. 이 기사에서는 URL을 입력하는 것부터 완전히 로드된 웹페이지를 보는 것까지의 과정을 살펴보고 이를 가능하게 하는 기술과 프로토콜을 조명합니다.

What Happens When You Type a URL Into a Browser?

1단계: URL을 입력하고 이를 IP 주소로 변환

브라우저에 URL(예: www.example.com)을 입력하면 여정이 시작됩니다. 브라우저의 첫 번째 작업은 사람이 읽을 수 있는 이 URL을 IP 주소(웹 사이트를 호스팅하는 서버의 숫자 주소)로 변환하는 것입니다. 도메인 이름을 사용하는 동안 컴퓨터는 192.0.2.1.

와 같은 숫자 주소를 사용하여 통신하기 때문에 이 번역이 중요합니다.

IP 주소를 찾기 위해 브라우저는 여러 캐시를 확인하여 프로세스 속도를 높입니다.

  • 브라우저 캐시: 반복적인 조회를 피하기 위해 이전 IP 주소를 저장합니다.
  • 운영체제(OS) 캐시: 브라우저 캐시에 없으면 OS 캐시를 확인합니다.
  • 라우터 또는 로컬 캐시: 브라우저는 라우터의 캐시 또는 로컬 네트워크 캐시를 확인할 수 있습니다.
  • ISP 캐시: 마지막으로 인터넷 서비스 제공업체(ISP)는 IP 주소 캐시를 유지합니다.

이러한 캐시에 IP 주소가 포함되어 있지 않으면 브라우저는 DNS(도메인 이름 시스템) 조회를 수행합니다.

2단계: DNS 조회 및 IP 주소 확인

캐시에서 IP 주소를 찾을 수 없으면 브라우저는 DNS 조회를 시작합니다. DNS를 인터넷 전화번호부라고 생각하세요. DNS는 여러 단계를 거쳐 도메인 이름을 IP 주소로 변환합니다.

  1. 재귀적 DNS 조회: DNS 확인자는 요청된 IP 주소를 찾을 때까지 다양한 DNS 서버에 재귀적 쿼리를 수행합니다.
  2. 루트 DNS 서버: 확인자는 먼저 루트 DNS 서버를 쿼리하여 TLD(최상위 도메인) DNS 서버(예: .com 또는 .org)로 연결합니다.
  3. 권한 있는 DNS 서버: 그런 다음 TLD 서버는 올바른 IP 주소를 제공하는 도메인(예: example.com)에 대한 권한 있는 DNS 서버를 가리킵니다.

이 정보를 사용하면 브라우저가 웹 서버와의 연결을 계속 설정할 수 있습니다.

3단계: TCP 연결 및 HTTPS 핸드셰이크 설정

브라우저에 IP 주소가 있으면 웹 서버와의 통신을 시작하기 위해 HTTP(또는 HTTPS) 요청을 보냅니다. 그러나 데이터를 교환하기 전에 TCP 3-way handshake:

라는 프로세스를 통해 TCP(Transmission Control Protocol) 연결이 설정되어야 합니다.
  1. SYN: 클라이언트는 연결을 요청하기 위해 SYN(동기화) 메시지를 보냅니다.
  2. SYN-ACK: 서버가 SYN-ACK(동기화 승인) 메시지로 응답합니다.
  3. ACK: 마지막으로 클라이언트는 연결을 설정하기 위해 ACK(승인) 메시지를 다시 보냅니다.

HTTPS를 통해 웹사이트에 액세스하는 경우 SSL/TLS 핸드셰이크라는 추가 단계가 발생하여 브라우저와 서버 간에 교환되는 데이터가 암호화됩니다.

  1. 서버는 공개 키를 브라우저로 보냅니다.
  2. 브라우저는 이 공개 키를 사용하여 세션 키를 암호화하고 이를 다시 보냅니다.
  3. 서버는 개인 키를 사용하여 이 세션 키를 해독합니다.
  4. 양 당사자는 앞으로의 보안 통신을 위해 이 세션 키를 사용합니다.

4단계: HTTP 요청 보내기

보안 연결이 설정되면 브라우저는 서버의 특정 리소스에 액세스하기 위해 HTTP 요청을 보냅니다. 이 요청에는 브라우저 유형, 액세스하려는 페이지 등의 세부정보가 포함됩니다. HTTP 요청은 다음과 같습니다.


GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html


서버는 이 요청을 처리하고 요청된 리소스를 다시 보낼 준비를 합니다.

5단계: 서버가 요청을 처리하고 응답을 보냅니다.

요청을 처리한 후 서버는 페이지 렌더링에 필요한 HTML, CSS, JavaScript 및 이미지와 같은 리소스가 포함된 HTTP 응답을 생성합니다. 이상적으로 이 응답은 모든 것이 원활하게 진행되었음을 나타내는 200 OK 상태 코드를 갖습니다.

다음은 해당 응답의 예입니다.


HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 3485




Example Page


Welcome to Example.com!






6단계: 페이지 렌더링

브라우저가 이 응답을 받으면 해당 파일에 포함된 JavaScript 코드를 실행하는 동안 HTML 및 CSS 파일을 구문 분석하여 페이지 렌더링을 시작합니다. 이 프로세스에는 웹페이지 요소의 구조를 나타내는 DOM(문서 개체 모델)을 만드는 작업이 포함됩니다.

렌더링 엔진은 DOM 구조와 여기에 적용된 CSS 스타일을 기반으로 화면의 픽셀 페인팅을 처리합니다.

결론

브라우저에 URL을 입력하면 어떤 일이 발생하는지 이해하면 최신 웹 기술이 얼마나 복잡하면서도 효율적인지 알 수 있습니다. 도메인 이름을 IP 주소로 변환하는 것부터 보안 연결 설정 및 페이지를 원활하게 렌더링하는 것까지 각 단계는 콘텐츠를 빠르고 안전하게 전달하는 데 필수적인 역할을 합니다.

다음번에 온라인을 탐색할 때 즐겨찾는 웹사이트에서 원활한 탐색을 즐길 수 있도록 모든 비하인드 프로세스가 함께 작동하는 과정을 감상하는 시간을 가져보세요!

추가 자료

웹 기술의 작동 방식에 대한 지식을 심화하거나 더 많은 기술적 통찰력을 찾는 데 관심이 있는 분들을 위해:

  • DNS 작동 방식
  • TCP/IP 이해
  • HTTPS 연결

이러한 리소스를 탐색하면 디지털 세계가 어떻게 운영되는지에 대해 더 많은 통찰력을 얻을 수 있습니다!

릴리스 선언문 이 기사는 https://dev.to/vyan/what-happens-when-you-type-a-url-into-a-browser-2mh2?1에서 복제됩니다. 침해가 있는 경우, Study_golang@163으로 문의하시기 바랍니다. .com에서 삭제하세요
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3