URI(Uniform Resource Identifier) 통합 자원 식별자
라는 의미로 인터넷 상의 리소스
를 고유하게 식별할 수 있는 식별자이다. URI에는 위치를 알려주는 URL(Uniform Resource Locator)
와 전 세계를 통틀어 고유한 이름을 의미하는 URN(Uniform Resource Name)
이 존재한다.
scheme : 프로토콜을 뜻하며 http, https가 있다.
userinfo : 데이터에 접근하기 위한 사용자 정보. 끝은 @로 구분한다
host : 접근할 서버의 호스트명
port : 접근할 서버의 포트번호
path : 접근할 서버의 경로에 대한 정보
query : 접근할 대상에 전달하는 추가정보(파라미터)
fragment : 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 식별하기 위한 정보
URL은 흔히 웹 주소
라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디에 있는지 알려주기
위한 규약이다. URL은 URI의 서브셋이지만 URI와 URL의 가장 큰 차이점은 URI는 식별하고, URL은 위치를 가르킨다는 점이다.
URN(Uniform Resource Name) 리소스를 유일하고 영구적인 이름으로 식별하지만 인터넷 상의 위치는 알려주지 않는다. 만약 "RumbleBi" 라는 이름이 유일하다면 URN의 조건에 부합하게 된다. 즉, 매번 바뀌는 위치가 아닌 유일한 식별자인 이름
을 기준 으로 자원을 식별하는 것이다.
예시를 들어보자.
'RumbleBi'는 내 이름이며 식별자다. URI와 비슷하지만, 내 위치나 연락처 나이 등의 정보가 없으므로 URL은 될 수가 없다.
“경기도 성남시 분당구 정자동 불정로 6”는 주소다. 이 주소는 특정 위치를 가르킨다. URL 및 URI와 비슷하며 간접적으로 내가 있는 장소로 식별한다.
https://comic.naver.com/index
네이버 웹툰 메인페이지다. 이러한 주소는 index.html 을 가르키고 있지만 실제로 index라는 파일이 웹 서버에 존재하지 않으므로 URL은 아니다. 하지만 서버 내부에서 rewrite하여 index.html을 가르키기 때문에 URI라고 볼 수 있다.
URL은 어떻게 리소스를 얻을 것이고 어디에서 가져와야하는지 위치를 명시하는 URI이다. URN은 리소스를 어떻게 접근할 것인지 명시하지 않고 유일한 식별자인 이름을 기준을 목표로하는 URI이다.
참고자료
https://www.charlezz.com/?p=44767
https://mygumi.tistory.com/139
https://hanamon.kr/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EA%B8%B0%EB%B3%B8-url-uri-urn-%EC%B0%A8%EC%9D%B4%EC%A0%90/