URL과 URI는 모두 웹 리소스를 식별하는 데 사용되는 개념이지만, 그 범위와 역할에서 차이가 있습니다.
여기서 "리소스를 식별한다" 는 말은, 특정 리소스(웹 페이지, 이미지, 파일 등)를 고유하게
구분한다는 것을 의미합니다.
URI(Uniform Resource Identifier)
URI는 웹 리소스의 식별자입니다. 따라서 URI는 웹 상에서 특정 리소스를 유일하게 식별할 수 있는
문자열을 의미합니다. 그리고 여기엔 해당 리소스의 이름, 위치, 기타 메타데이터 등을 포함할 수 있습니다.
그리고 URL과 URN 두 가지가 URI의 하위 개념에 속합니다.
URL(Uniform Resource Locator)
URL은 리소스의 위치를 나타내는 URI의 한 유형입니다. 따라서 URL에는 해당 리소스를
찾을 수 있는 위치와, 이에 접근하기 위한 프로토콜을 명시합니다.
이렇게 URL은 URI와 다른 것이 아닌, URI의 하위 개념입니다.
URI는 인터넷 상의 모든 리소스를 고유하게 식별할 수 있는 범용적인 개념이고,
이 중에서 URL은 URI의 한 형태로서, 리소스의 웹 상 위치를 구체적으로 나타내어
리소스에 어떻게 접근할 것인가를 설명해주는 역할을 합니다.
정리하자면 URI ⊃ URL 이라고 할 수 있겠습니다.
즉, 모든 URL은 URI지만, 모든 URI가 반드시 URL인 것은 아닙니다.
URN(Uniform Resource Name)
예를 들자면, 도서관에는 여러 책들이 있고, 이를 구분하기 위해 책마다 ISBN이라는 고유번호를 붙여줍니다.
이와 같이 리소스를 웹 상의 위치로 나타내는 대신, 리소스의 이름만을 통해 고유하게 식별하는
방식이 있습니다. 이것이 URI의 다른 하위개념 중 하나인 URN입니다.
ISBN은 책이 웹에서 어디에 저장되어 있는지에 대한 위치 정보는 제공하지 않습니다. 따라서 URL이 아닙니다.
하지만, "이 책이 무슨 책인지"에 대한 정보를 제공합니다. 즉, "식별"합니다. 따라서 URI입니다.