URI(Uniform Resource Identifier)는 리소스를 식별하는 문자열의 상위 개념이고, URL과 URN은 그 하위 종류입니다.
URL은 리소스의 '위치와 접근 방법'을 알려주고(예: https://…), URN은 위치와 무관하게 리소스에 붙는 영속적 '이름'입니다(예: urn:isbn:…).
흔한 오해는 URL과 URI를 동의어로 보는 것이지만, 정확히는 URL ⊂ URI입니다. URL은 스킴(https)·호스트·포트·경로·쿼리·프래그먼트로 구성되어 '어디서 어떻게 가져올지'를 담습니다. URN은 `urn:isbn:0451450523`처럼 리소스가 어디에 있든 변하지 않는 식별자로, 위치 이동에 강합니다.
실무에서는 대부분 URL을 다루므로 세 용어를 엄밀히 구분하지 않고 URL이라 부르는 경우가 많습니다. 그러나 API 설계나 사양 문서를 읽을 때는 구분이 중요합니다. 예컨대 XML 네임스페이스나 콘텐츠 식별자는 위치가 아닌 이름으로서 URI(URN 스타일)를 씁니다. 호스트 부분은 DNS로 IP 주소로 해석됩니다.