URL의 구성 요소와 웹 통신 과정
CS

URL의 구성 요소와 웹 통신 과정

1. URL이란?

URL은 Uniform Resource Locator의 약자로 인터넷에 존재하는 리소스의 위치를 나타내는 주소이다.

자원을 식별하기 위해 사용하는 URI는 URL를 포함하는 더 넓은 개념이다.

2. 구성 요소

URL의 구성 요소

  1. 프로토콜(Protocol)
    • 스키마(Scheme)라고도 하며, 사용하는 프로토콜의 이름이다.
    • URL에서 사용되는 프로토콜의 유형을 지정하는 역할로 주로 http, https, ftp 등이 사용된다.
  2. 서브 도메인(Subdomain)
    • 도메인의 하위 요소로 웹 사이트의 기능을 구분하거나 특정 서비스를 나타내기 위해 사용된다.
    • 예를 들어, 'blog.naver.com', 'webtoon.naver.com' 처럼 도메인 내에서 다른 서비스에 접근할 수 있다.
  3. 2차 수준 도메인(Second-Level Domain, SLD)
    • 도메인이란 리소스를 제공하는 서버의 논리적 주소인 IP 대신 알기 쉬운 이름을 붙여놓은 것이다.
    • 2차 수준 도메인은 도메인 이름의 중심 부분이다.
    • 주로 기업, 브랜드, 상호 등의 이름이 사용된다. (naver, tistory 등)
  4. 최상위 수준 도메인(Top-Level Domain, TLD)
    • 계층 구조를 가진 DNS에서 최상위에 위치한 도메인이다.
    • 일반 최상위 도메인(.com, .org, .net)과 국가 코드 최상위(.kr, .jp) 도메인으로 이뤄진다.
  5. 포트(Port)
    • 호스트(Host)의 특정 프로세스를 나타내는 번호로서, 생략이 가능하다.
    • 생략 시 프로토콜에 따라 기본 포트 번호가 사용된다. (HTTP: 80번, HTTPS: 443번)
  6. 경로(Path)
    • 서버 시스템 내부에 리소스가 위치한 경로를 나타낸다.
    • 주로 파일 경로 또는 디렉토리 경로가 해당된다.
  7. 쿼리(Query)
    • URL의 매개변수로서 ?뒤에 키-값 쌍으로 추가적인 정보를 전달하기 위해 사용한다.
    • 주로 요청할 리소스를 검색하거나 필터링할 때 사용한다.
  8. 프래그먼트(Fragment)
    • 앵커(Anchor)라고도 부르며 리소스 내의 특정 위치를 지정하고 이동할 때 사용한다.
    • 경로와 쿼리 다음에 # 기호를 붙여 위치를 지정한다. 
    • 예를 들어, 위키피디아 페이지 내에서 특정 섹션으로 이동하고 싶을 때 사용한다.
2~4번 요소를 합쳐서 호스트(Host)라고 표현하는데, 리소스를 제공하는 주체를 나타내며 IP 주소 또는 도메인 이름을 사용한다.
도메인 이름은 도메인 이름 시스템(DNS)에 의해 IP 주소로 변환된다.

3. 웹 통신 과정

URL을 사용한 웹 통신 과정

  1. URL 입력
    • 사용자가 URL을 입력 시, 브라우저는 URL을 파싱한다.
    • 프로토콜, 호스트 이름, 포트, 경로 등 URL의 구성 요소를 추출한다.
  2. IP주소 탐색
    • 로컬 DNS 캐시에서 URL의 호스트 이름에 해당하는 IP주소를 검색한다.
    • 이미 접속한 기록이 있다면, 브라우저는 로컬 DNS 캐시에 도메인 이름과 IP 주소 쌍을 저장하므로
      DNS 서버에 쿼리을 보내지 않고 빠르게 리소스를 요청할 수 있다.
    • 저장된 값이 없다면, 브라우저는 호스트 이름에 해당하는 IP 주소를 찾기 위해 DNS 서버에 쿼리를 보낸다.
  3. TCP/IP 연결 설정
    • 브라우저는 DNS 서버로부터 받은 웹 서버의 IP 주소와 포트 번호를 사용하여 요청을 보낸다.
    • 3-way handshake 과정을 통해 웹 서버와 논리적 연결을 설정한다.
  4. HTTP 메시지 송수신
    • 브라우저는 HTTP 요청 메시지를 생성하고 서버로 전송한다.
    • 웹 서버는 해당 요청을 수행하고 HTTP 응답 메시지를 생성하여 클라이언트(브라우저)로 전송한다.
    • 이때 메시지에는 웹 페이지, 미디어 파일 등이 포함될 수 있다.
  5. 렌더링
    • 브라우저는 서버의 응답을 해석하고 웹 페이지를 렌더링하여 사용자에게 보여준다.
    • HTML, CSS, JavaScript 등의 리소스를 처리하여 화면에 출력한다.

'CS' 카테고리의 다른 글

HTTP 버전별 특징 정리  (0) 2023.03.02
HTTP 메시지와 구성 요소  (0) 2023.03.01
HTTP vs HTTPS (feat. 대칭키, 공개키)  (0) 2023.02.28
TCP vs UDP  (0) 2023.02.26
OSI 7계층에 대하여  (0) 2023.02.24