1. URI (Uniform Resource Identifier)
웹 개발을 하면, 웹 페이지, 이미지, 동영상, API 등 많은 자원을 다룬다.
이처럼 인터넷 상에서 수많은 자원을 식별하고 찾아내기 위해 사용되는 문자열이 URI이다.
URI는 Uniform Resource Identifier의 약자로, 통합 자원 식별자라고도 한다.
어떤 자원을 지칭하는 이름표 역할을 한다.
URI는 URL과 URN을 포괄하는 상위 개념으로,
자원을 식별하는 모든 방식을 포함하는 가장 넓은 개념이다.
2. URL (Uniform Resource Locator)
URI가 자원을 식별하는 모든 방식을 포괄하는 넓은 개념이라면,
URL(Uniform Resource Locator)은 자원이 어디에 위치 하고 있는지 알려주는 URI의 한 종류이다.
HTTP, FTP등 프로토콜을 사용하여 자원의 위치를 지정한다.
(1) URL의 구성요소
[스키마] :// [호스트] : [포트] / [경로] ? [쿼리스트링] # [프래그먼트]
구성 요소 |
설명 | |
스키마 | Scheme | 자원에 접근하는데 사용될 프로토콜을 지정 http, https, ftp 등 |
호스트 | Host | 자원이 위치한 서버의 도메인 이름 또는 IP 주소 |
포트 | Port | (선택 사항) 서버 내에서 자원에 접근할 특정 포트 번호를 지정 기본 포트(HTTP : 80, HTTPS : 443)인 경우 생략될 수 있음 |
경로 | Path | 서버 내 자원의 디렉토리 및 파일 이름 등 정확한 위치 |
쿼리 스트링 | Query String | (선택사항) 자원에 추가적으로 전달되는 매개변수 `?`로 시작하며 `이름=값` 형태로 & 로 연결 |
프래그먼트 | Fragment | HTML 페이지 내 특정 섹션(앵커)를 나타냄 서버로 전송 되지 않고 브라우저 내부에서 사용 |
(2) URL의 특징
URL의 가장 큰 특징은 자원의 위치를 명확히 알려준다는 점이다.
또한, 자원에 접근하기 위해 특정 프로토콜을 필수로 포함해야 한다.
자원의 위치를 알려주기 때문에, 위치가 변경되면 URL도 변경되어야 한다.
3. URN (Uniform Resource Name)
URL이 자원의 위치를 나타낸다면, URN은 자원의 고유한 이름을 나타낸다.
자원의 위치와 상관 없이 자원의 이름을 식별하는 방식이다.
이러한 특성으로 자원의 위치가 변경되어도 동일한 식별자를 유지할 수 있다.
(1) URN의 구성요소
urn : [NID] : [NSS]
구성 요소 | 설명 | |
urn | URN임을 나타내는 접두사 | |
NID | Namespace IDentifier | URN의 구문과 해석 방식을 결정하는 네임 스페이스를 정의 예) isbn(국제 표준 도서 번호), uuid(범용 고유 식별자) |
NSS | Namespace Specific String |
지정된 NID내에서 자원을 고유하게 하는 식별 문자 예) 0451450523 (ISBN 번호) 6e8bc430-9c3a-11d9-9669-0800200c9a66 (UUID) |
URN 예시
urn:isbn:0451450523
urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66
(2) URN의 특징
자원의 위치와 관계 없이 동일한 URN으로 식별된다.
자원의 물리적 위치나 접근 방식이 변화하여도 URN은 변하지 않는다.
URN 자체가 자원을 가져오지 않기 때문에 URN으로 자원을 접근하기 위해선
URL 등의 실제 자원의 위치로 변환해주는 URN Resolution 시스템이 필요하다.
4. URI, URL, URN 총정리