URI, URL, URN
1. 관계
2. URI (Uniform Resource Identifier)
Uniform은 리소스를 식별하는 통일된 방식.
Resource란, URI로 식별이 가능한 모든 종류의 자원(웹 브라우저 파일 및 그 이외의 리소스 포함)을 지칭.
Identifier는 다른 항목과 구분하기 위해 필요한 정보.
1
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
- 구조
- scheme : 사용할 프로토콜을 뜻하며 웹에서는 http 또는 https를 사용
- user와 password : (서버에 있는) 데이터에 접근하기 위한 사용자의 이름과 비밀번호
- host와 port : 접근할 대상(서버)의 호스트명과 포트번호
- path : 접근할 대상(서버)의 경로에 대한 상세 정보
- query : 접근할 대상에 전달하는 추가적인 정보 (파라미터)
- fragment : 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 이를 식별하기 위한 정보
- 즉, URI는 인터넷상의 리소스 “자원 자체”를 식별하는 고유한 문자열 시퀀스.
- 예제
- ex) example.com는 URI지만 URL은 아님
- 이유 : 식별자이긴 하나 http와 같은 프로토콜이 붙어있지는 않고, 자원의 위치가 명시된 것이 아니다.
- ex2) http://example.com/index.html
- 이유 : 식별자이면서 동시에 https와 같이 통신 프로토콜도 붙어 있다
- ex) example.com는 URI지만 URL은 아님
3. URL (Uniform Resource Locator)
네트워크상에서 통합 자원(리소스)의 “위치”를 나타내기 위한 규약. 즉, 자원 식별자와 위치를 동시에 표현.
특정 웹 페이지의 주소에 접속하기 위해서는 웹 사이트의 주소뿐만 아니라 프로토콜(https, http, sftp, smp 등)을 함께 알아야 접속이 가능
웹 사이트 주소 + 컴퓨터 네트워크 상의 자원
예제)
- ex1) http://example.com/index.html는 URL이다
- 이유 : 통신 프로토콜을 명시하고 있고, 리소스의 위치를 가리키므로 URL이다
- ex2) http://www.example.com/index.html?page=1&id=1는 URI이다.
- 이유 : index.html과 같이 자원 위치까지만 나타낸다면 URL이지만, ?뒤의 querystring에 따라 index.html에 대한 결과가 달라질 것이므로 이 경우는 URI라고 할 수 있다.
- ex1) http://example.com/index.html는 URL이다
4. URN (Uniform Resource Name)
URN은 리소스를 어떻게 접근할 것인지 명시하지 않고 경로와 리소스 자체를 특정하는 것을 목표로하는 URI이다.
http와 같은 프로토콜을 제외하고 리소스의 name을 가리키는데 사용된다.
실제 자원을 찾기 위해서 urn을 url로 변환하여 이용한다.
예제 (RFC3986의 예시)
- urn:oasis:names:specification:docbook:dtd:xml:4.1.2
- tel:+1-816-555-1212
This post is licensed under CC BY 4.0 by the author.