URI / URL / URN 이란 무엇인가
오늘은 URI / URL / URN의 차이를 알아보자

대부분의 사람들은 URI와 URL을 혼용해서 사용하고 있다.
하지만, 이는 엄밀히 말하면 다르다.

위의 사진에서 볼 수 있듯이, URI는 URL과 URN을 포함하고 있다.
이들의 각 뜻은 다음과 같이 정의할 수 있다.
URI (Uniform Resource Identifier) : 자원의 식별자
URL (Uniform Resource Locator) : 자원의 위치
URN (Uniform Resource Name) : 이름
[ URI ]
- 통합 자원 식별자 (Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다.
- URI의 존재는 인터넷에서 요구되는 기본 조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.
- URI의 하위개념으로 URL, URN이 있다.
[ URL ]
- URL (Uniform Resource Locator, 문화어: 파일 식별자, 유일자 원지 시기)은 네트워크 상에서 자원이 어디 있는지 알려주기 위한 규약이다.
- 즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다.
- 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.
[ URN ]
- URN(Uniform Resource Name, 통합 자원 이름)은 urn:scheme을 사용하는 URI를 위한 역사적인 이름이다.
- URN은 영속적이고, 위치에 독립적인 자원을 위한 지시자로 사용하기 위해 1997년도 RFC 2141 문서에서 정의되었다.
[ URL / URI / URN 실제 비교 ]
http://zenghyun.org:7521/main?id=HTML&page=5
http : protocol
zenghyun.org : host(domain)
7521: host(domain)
main: path
id=HTML&page=5 : query string
위의 내용을 통해 URI와 URL의 차이를 정리해보자면
http://zenghyun.org:7521/main : 여기까지는 URI이면서 URL
http://zenghyun.org:7521/main?id=HTML&page=5 : 이건 URI라고 할 수 있다. (URL X)
왜냐면 URL은 자원의 위치를 나타내 주는 것이고 URI는 자원의 식별자인데, ?id=HTML&page=5 이 부분은 위치를 나타내는 것이 아니라 id값이 HTML이고 page가 5인 것을 식별하는 부분이기 때문이다.
그래서 보통 http://zenghyun.org:7521/main?id=HTML&page=5 이런 주소를 통상적으로 URL이라고 얘기하지만 정확하게는 URI라고 하는 것이 맞다.
[ 자원의 위치 / 자원의 식별자 ]
인터넷 상의 자원의 위치와 자원의 식별자는 언뜻 보면 같은 것을 의미한다고 생각할 수 있다.
하지만, '자원의 위치'라는 것은 결국 '하나의 파일 위치'를 나타내는 것임을 명심하자.