브라우저 주소창에 URL을 입력하면 벌어지는 일

김현중·2025년 3월 14일

연구소

목록 보기
24/34

브라우저 주소창에 URL을 입력하면 벌어지는 일을 보기 전에 먼저 URL, URN, 그리고 URI에 대해 보겠습니다.

URL (Uniform Resource Locator)

URL은 URI의 가장 흔한 형태로, 리소스의 위치와 접근 방법을 함께 지정합니다. 웹 브라우저에 흔히 입력하는 주소가 바로 URL입니다.

URL의 특징

  • 리소스의 정확한 위치를 지정
  • 리소스에 접근하는 방법(프로토콜)을 포함
  • 네트워크 상의 위치와 경로 정보 제공

URL의 구성 요소

  1. 스킴(Scheme): 사용할 프로토콜(http, https, ftp 등)

  2. 권한 정보(Authority):

    • 사용자 정보
    • 호스트: 도메인 이름 또는 IP 주소
    • 포트: 서비스 포트 번호
  3. 경로(Path): 서버 내 리소스의 경로 (/user/profile 등)

  4. 쿼리(Query): 리소스에 전달할 매개변수 (?id=123&page=2 등)

  5. 프래그먼트(Fragment): 문서 내 특정 부분을 가리키는 식별자 (#section1 등)



URN (Uniform Resource Name)

URN은 리소스의 이름을 지정하는 URI의 한 형태로, 위치에 독립적인 식별자입니다.

URN의 특징:

  • 리소스의 이름을 지정
  • 위치가 변경되어도 동일한 리소스를 가리킬 수 있는 영구적인 식별자
  • 리소스 접근 방법을 명시하지 않음

예: urn:isbn:0451450523 (ISBN을 통한 책 식별)



URI (Uniform Resource Identifier)

URI는 인터넷 상의 리소스를 고유하게 식별하기 위한 통합 자원 식별자입니다. 즉, 인터넷에 있는 자원을 구분하기 위한 '이름'이라고 생각할 수 있습니다.

URI의 특징

  • 리소스를 고유하게 식별하는 문자열
  • URI와 URN을 모두 포함하는 상위 개념
  • 일반적인 문법 구조: scheme:[//authority]path[?query][#fragment]

결론

  • URI는 가장 넓은 개념으로 리소스를 식별하는 모든 방식을 포함
  • URL은 "어떻게 접근하는지"를 포함한 URI (위치 기반)
  • URN은 "무엇인지"를 나타내는 URI (이름 기반)

실제로 웹에서는 URL이 가장 널리 사용되며, 일상적으로 "URL"과 "URI"는 혼용되어 사용되기도 합니다.



브라우저 주소창에 URL을 입력하면 벌어지는 일

  1. URL 파싱

브라우저는 입력된 URL을 분석하여 프로토콜(http/https), 도메인, 경로 등의 구성 요소로 분리합니다.

  1. DNS 조회

도메인 이름을 해당 웹 서버의 IP 주소로 변환합니다. 이 과정은 다음 순서로 진행됩니다.
- 브라우저 캐시 -> OS 캐시 -> 라우터 캐시 -> ISP DNS 서버 순으로 확인

위 캐시들에서 찾지 못하면, 재귀적 DNS 쿼리를 통해 루트 DNS 서버부터 시작하여 IP 주소를 찾습니다.

  1. TCP 연결 설정

서버의 IP 주소를 찾았다면, 브라우저는 TCP 3-way handshake 과정을 통해 서버와 연결을 수립합니다.

  1. 클라이언트 -> 서버: SYN(연결 요청)
  2. 서버 -> 클라이언트: SYN-ACK(요청 수락)
  3. 클라이언트 -> 서버: ACK(수락 확인)

이 과정을 통해 신뢰성 있는 통신 채널이 구축됩니다.

  1. TLS 핸드셰이크 (HTTPS 사용 시)

HTTPS URL인 경우, 암호화된 연결을 위한 TLS 핸드셰이크가 추가로 진행됩니다(인증서 확인 및 키 교환).

  1. HTTP 요청 전송

연결이 설정되면, 브라우저는 서버에 HTTP 요청을 전송합니다. 이 요청에는 HTTP 메서드(GET, POST), 헤더(Accept, User-Agent), 쿠키 등이 포함됩니다.

  1. 서버 처리

서버는 요청을 받아 처리합니다. 이는 단순한 정적 파일 제공일 수도 있고, 데이터베이스 조회, 애플리케이션 로직 실행 등을 포함한 복잡한 처리일 수도 있습니다.

  1. HTTP 응답 수신

서버가 처리를 완료하면, 결과를 HTTP 응답으로 브라우저에 전송합니다. 이 응답에는 상태코드, 헤더, 그리고 요청한 콘텐츠가 포함됩니다.

  1. 브라우저 렌더링

브라우저는 받은 응답을 처리하여 사용자에게 보여줍니다. HTML 문서의 경우 다음 과정을 거칩니다.

  1. HTML 파싱

  2. DOM 트리 구성

  3. CSS 파싱 및 CSSOM 구성

  4. DOM과 CSSOM을 결합한 렌더 트리 구성

  5. 레이아웃 계산(각 요소의 크기와 위치)

  6. 화면에 페인팅

  7. 추가 리소스 로딩

HTML 내에 포함된 이미지, CSS, JavaScript 등의 추가 리소스에 대해서도 위 과정(1~8)이 반복됩니다.

  1. JavaScript 실행

페이지 내의 JavaScript 코드가 실행되어 DOM 조작, 이벤트 처리, AJAX 요청 등이 이루어집니다.

profile
진짜 성실한 사람

0개의 댓글