URI는 URL과 URN을 포함하는 개념이다. 아래 그림 구조는 URL의 구조를 나타낸다.
단순하게 말하자면, URI는 규약이고, URL은 규약에 대한 형태라고 생각하면 혼동되지 않을 것이다.
모든 URL은 URI이며 모든 URN 또한 URI이다. URI는 상위 개념이다.
query string 까지 포함하는게 URI라는 잘못된 자료들이 많다. 아니다. 포스팅을 몇 번을 수정했다.
URL의 경우 위치를 기반으로 두고 있기 때문에 해당 위치에 있는 자원이 없어지거나 할 경우 검색수단으로써 기능을 상실한다. 주소가 바뀌면 그 페이지에 다시 접근할 수 없는 원리와 같다.
이를 보안하고자 만들어 진것이 URN이다. URN은 리소스의 이름을 나타내는 것이다. URL이 리소스의 "위치"를 나타내는것이라고 하면 URN은 위치에 의존하는것이 아닌 리소스의 "이름" 그 자체를 지시하는것이기 때문에 영속성을 지닌다.
URN는 URN으로 시작하여 콜론(;)으로 구분한다. 일반적인 체계는 urn : '이름공간식별자' : '이름공간에 대한 특별 문자열'로 구성된다. (ex.urn:def:blue_laser) 이처럼 표준 식별체계가 정착하게 되면 콘텐츠의 사용자는 등록된 메타데이터로 원하는 정보를 빠르고 정확히 이용할 수 있고, 콘텐츠 보유자나 유통자는 개별식별코드를 부여해 더 효율적이고 안정되게 유통가능하다.
urn:isbn:0451450523
urn:isan:0000-0000-2CEA-0000-1-0000-0000-Y
urn:ISSN:0167-6423
urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
urn:lsid:zoobank.org:pub:CDC8D258-8F57-41DC-B560-247E17D3DC8C
Amazon 리소스 이름(ARN)은 AWS 리소스를 고유하게 식별합니다. 모든 전반에 리소스를 명료 하게 지정해야 하는 경우 ARN 이 필요합니다.AWS에서 IAM 정책, Amazon RDS (Amazon Realtional Database Service) 태그 및 API 호출과 같은 서비스를 제공합니다.
arn:partition:service:region:account-id:resource-id
arn:partition:service:region:account-id:resource-type/resource-id
arn:partition:service:region:account-id:resource-type:resource-id
URI는 오직 아스키(ASCII) 인코딩만 지원하지만, IRI(International Resource Identifier)는 ASCII를 포함하여 모든 문자 규격을 지원하되 주로 UTF-8을 통해 전 세계의 문자셋을 지원한다. 따라서 IRI는 URI의 상위개념이라고 할 수도 있다.
장점으로는 라틴어(A~Z) 알파벳에 익숙하지 않은 사용자가 쉽게 사용할 수 있다. 유니코드를 복제하는 것이 어렵지 않은 사람에게는 URI 시스템의 액세스 가능성을 높일 수 있다.
단점은 IRI와 ASCII URI를 혼합하면 해킹을 훨씬 쉽게 수행하여 다른 사이트에 있는 사람들에게 피싱 공격을 할 수 있다.
변환 될 때는 한글 ‘가’는 UTF-8로 0xea 0xb0 0x80
이므로 %EA%B0%80
로 치환된다.
URI 인터넷 서비스(웹 서비스 등)를 전제로 하여, 인터넷 응용 정보자원(텍스트,비디오,음향,이미지,기타 서비스 등)에 대한 통일적 식별체계를 지칭하는 개념적 용어이다. URI에는 인트라넷 또는 인터넷에서 애플리케이션에 사용할 수 있는 리소스의 compact표현이다.
URL(Uniform Resource Locator, 문화어: 파일식별자, 유일자원지시기)은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다. 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다.
URN(Uniform Resource Name, 통합 자원 이름)은 urn:scheme 을 사용하는 URI를 위한 역사적인 이름이다. URN은 영속적이고, 위치에 독립적인 자원을 위한 지시자로 사용하기 위해 1997년도 RFC 2141 문서에서 정의되었다.
http://wiki.hash.kr/index.php/URI
https://victorydntmd.tistory.com/287
https://en.wikipedia.org/wiki/Uniform_Resource_Name
https://docs.aws.amazon.com/ko_kr/general/latest/gr/aws-arns-and-namespaces.html