[web] URI, URL, URN

artp·2025년 5월 24일
0

web

목록 보기
9/9
post-thumbnail

URI (Uniform Resource Identifier)

U - Uniform

  • 통일된(일관된) 규칙

R - Resource

  • 자원
  • URI로 식별할 수 있는 모든 것을 말합니다.
  • 반드시 웹 서버의 파일일 필요는 없고, 실시간 교통 정보, 사용자 계정, API 엔드포인트 등 추상적이거나 동적으로 생성되는 대상도 모두 리소스입니다.

I - Identifier

  • 식별자
  • 다른 항목과 구별하기 위한 고유 문자열입니다.
  • URI는 어떤 리소스를 유일하게 가리키는 이름표 역할을 합니다. URL처럼 위치까지도 알려주기도 하고, URN 처럼 이름만 제공하기도 합니다.

즉, URI는 “일관된 규칙(Uniform)”으로 “자원(Resource)”을 가리키기 위한 “고유 식별자(Identifier)”입니다.

URI 구문

URI 구문이란, 인터넷 자원을 식별하기 위해 URI를 어떻게 구성할지 정해놓은 문법 구조를 말합니다.

이 구문은 RFC 3986 (인터넷 표준 문서)에 의해 정의되어 있으며, 모든 URI는 아래와 같은 구조를 따릅니다.

scheme:[//authority]path[?query][#fragment]
구성 요소설명예시
scheme사용하는 프로토콜 (규칙)http, https, ftp
authority호스트 정보 (선택적)example.com:80
path자원의 경로/users/1, /images/logo.png
query추가 파라미터 (선택적)?page=2&sort=name
fragment문서 내 특정 위치 (선택적)#section2

URI 구문 예시

https://www.example.com/users/1?page=2#profile
구성 요소
schemehttps
authoritywww.example.com
path/users/1
query?page=2
fragment#profile

통일된 구조(Uniform syntax) 덕분에

  • 브라우저는 어떤 자원을 요청해야 하는지 정확히 파악할 수 있고,
  • 서버는 요청이 무엇을 의미하는지 해석할 수 있으며,
  • 프로그래밍 언어에서 URL 파싱 및 구성도 일관되게 할 수 있습니다.

scheme://host/path?... 형식은 URI의 표준 문법 구조(syntax)를 말하며,
일관된 구문 덕분에 URI는 “Uniform”하다고 불립니다.

1. URI, URL, URN

URI (Uniform Resource Identifier)

  • 웹이나 네트워크 상에서 자원을 식별하기 위한 주소 같은 고유한 식별자
  • "이게 무엇인지"를 구분하는 역할
  • 가장 넓은 범위의 개념으로, URL과 URN을 모두 포함

URL (Uniform Resource Locator)

  • URI의 한 종류 (하위 개념)
  • 자원의 위치(주소)와 접근 방법(프로토콜)까지 포함
  • 우리가 흔히 말하는 https://... 웹 주소 대부분이 URL

URN (Uniform Resource Name)

  • URI의 또 다른 종류 (하위 개념)
  • 자원의 고유한 이름만으로 식별
  • 위치 정보는 없음 (어디 있는지는 모름)
  • isbn(책의 국제 표준 고유 번호), issn(정기 간행물(잡지 등)의 국제 표준 번호), doi(논문, 데이터셋 등의 디지털 객체 식별자) 등

2. 왜 모든 URL은 URI인데, 모든 URI가 URL은 아닐까?

  • URI는 "자원을 식별할 수 있으면 모두 포함"하는 넓은 개념 (상위 개념)
  • URL은 "자원의 위치까지 포함하는" URI
  • URN은 "자원의 이름만으로 식별"하는 URI

즉,

  • URL ⊂ URI
  • URN ⊂ URI

URL과 URN은 서로 다르지만, 둘 다 URI에 포함됨

3. 예시로 비교

구분설명예시
URI자원을 식별하는 모든 표현https://example.com/users/1, urn:isbn:978-3-16-148410-0
URL위치까지 포함된 URIhttps://example.com/users/1
URN이름만 있는 URI (위치 없음)urn:isbn:978-3-16-148410-0

URL 예시

https://example.com/users/1
  • 위치와 프로토콜을 포함
  • 이 주소에 접속하면 실제로 리소스에 접근 가능
  • URL이면서 URI

URN 예시

urn:isbn:978-3-16-148410-0
  • 이 값만 보고 "어떤 책"인지는 알 수 있지만, 어디서 볼 수 있는지는 모름 (이 값만으로 해당 자원이 무엇인지는 알 수 있지만, 어디에 위치해 있는지는 알 수 없음)
  • 고유 식별자지만, 위치 정보는 없음(이름만 있고, 위치 정보 없음)
  • URI이지만 URL은 아님

5. 실무에서의 구분

  • 실제로 웹 개발에서 다루는 대부분의 주소는 URL
  • 그래서 "URI = URL"처럼 혼용해서 쓰는 경우가 많음
  • 하지만, 표준 문서API 설계, 프로토콜 정의 등에서는 정확히 구분해야 함
  • 예를 들어, REST API 명세에서 "URI"라고 하면, 사실상 URL을 의미하는 것이지만, 이론적으로는 URI가 URL의 상위 개념(더 넓은 개념)임을 알아두어야 함
  • 즉, 실무에서는 URL이라는 용어를 주로 사용하지만, 표준을 따르거나 정확한 기술 문서를 작성할 때는 URI/URL/URN을 구분해서 사용하는 습관이 중요

6. 정리

항목의미예시포함 관계
URI자원을 식별하는 모든 표현https://..., urn:isbn:...최상위 개념
URL위치(주소)와 접근 방법 포함https://example.comURI의 하위
URN이름만으로 자원 식별urn:isbn:1234567890URI의 하위

URI는 자원을 식별하는 가장 넓은 개념이고,
URL은 위치 정보까지 포함한 URI,
URN은 이름만으로 식별하는 URI입니다.

profile
donggyun_ee

0개의 댓글