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

2023. 3. 16. 11:04·CS

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
'CS' 카테고리의 다른 글
  • HTTP 버전별 특징 정리
  • HTTP 메시지와 구성 요소
  • HTTP vs HTTPS (feat. 대칭키, 공개키)
  • TCP vs UDP
무슈후슈
무슈후슈
코딩은 창작이다.
  • 무슈후슈
    감성코드
    무슈후슈
  • 전체
    오늘
    어제
    • 분류 전체보기 (122)
      • 알고리즘 (30)
      • IOS (27)
      • Swift (4)
      • TIL (41)
      • CS (15)
      • 메모 (2)
      • 시플 (1)
      • RxSwift (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    http
    python
    그리디
    백준
    프로그래머스
    codable
    git
    풀이
    코딩테스트
    MVVM
    SWIFT
    Realm
    github
    ios
    알고리즘
    파이썬
    비동기
    다이나믹 프로그래밍
    이분 탐색
    그래프 탐색
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
무슈후슈
URL의 구성 요소와 웹 통신 과정
상단으로

티스토리툴바