URI, URL, URN의 차이점
- URI는 인터넷 상의 "리소스(자원)"를 식별하는 문자열을 의미합니다.
즉, 웹에서 특정한 리소스를 찾기 위한 고유한 식별자입니다.
- URL과 URN을 포함하는 상위 개념.
- URI = URL + URN
✔ 예시:
https://www.example.com/index.html
(URL이면서 URI)
urn:isbn:0451450523
(URN이면서 URI)
- URL은 리소스의 위치(Location)와 접근 방법(Scheme)을 포함하는 URI의 하위 개념입니다.
즉, 특정 리소스를 어디에서 찾을 수 있는지 알려주는 정보(프로토콜 + 도메인 + 경로)를 포함합니다.
✔ 구성 요소 (예시: https://example.com:8080/path?query=value#fragment
)
- 프로토콜(Scheme):
https://
- 호스트(Host) 및 포트(Port):
example.com:8080
- 경로(Path):
/path
- 쿼리(Query String):
?query=value
- 프래그먼트(Anchor):
#fragment
✔ 예시:
https://www.google.com
ftp://example.com/file.txt
✔ 특징
- URL은 항상 리소스의 위치(Location)와 접근 방법을 포함해야 함.
- URN은 특정 리소스를 "고유한 이름"으로 식별하는 URI의 하위 개념입니다.
즉, 리소스의 위치와 무관하게 특정한 이름을 부여하여 식별하는 방식입니다.
- 리소스를 고유하게 식별하지만, 위치나 접근 방법을 제공하지 않음.
✔ 예시:
urn:isbn:0451450523
(ISBN 책 번호)
urn:ietf:rfc:2616
(RFC 2616 문서)
✔ 특징
- 리소스의 위치나 프로토콜을 포함하지 않음.
- 항상 변하지 않는 고유 식별자 역할.
4. URI, URL, URN 관계
- URI는 URL과 URN을 포함하는 더 넓은 개념입니다.
즉, 모든 URL과 URN은 URI이지만, 모든 URI가 URL이나 URN인 것은 아닙니다.
- URL은 리소스에 접근 가능하지만, URN은 접근 방법을 제공하지 않음.
✅ URL은 리소스의 위치(주소)를 포함하는 URI
✅ URN은 리소스를 유일하게 식별하는 이름을 가진 URI
✔ 비유적으로 설명하자면:
- URI: "모든 식별자의 개념"
- URL: "리소스의 정확한 주소 (집 주소)"
- URN: "리소스의 고유 이름 (사람의 이름)"
- 모든 URL과 URN은 URI에 속하지만, URL과 URN은 서로 다름.
5. 결론
구분 | URI | URL | URN |
---|
정의 | 리소스를 식별하는 고유한 문자열 | 리소스의 위치와 접근 방법을 포함 | 리소스의 이름만 포함 |
위치 정보 포함 여부 | O (URL, URN 모두 포함) | O (리소스의 위치 포함) | X (위치 정보 없음) |
접근 방법 제공 여부 | X | O (HTTP, FTP 등) | X |
예시 | https://www.example.com (URL) urn:isbn:0451450523 (URN) | https://www.example.com | urn:isbn:0451450523 |
✅ 즉, 모든 URL과 URN은 URI이지만, 모든 URI가 URL이나 URN은 아닙니다.