흔히 혼용되어 불리는 URL과 URI의 차이점에 대해 알아보자.
Uniform Resource Identifier(통합 자원 식별자)를 의미한다.
URI는 인터넷의 우편물 주소 같은 것으로, 고유하게 정보 리소스를 식별하고 위치를 지정한다
ex) velog 유저 honeysuckle의 블로그 - https://velog.io/@honeysuckle
HTTP는 주어진 URI로 객체를 찾아온다.
URI에는 두 가지가 있는데 URL과 URN 이다.
URI의 가장 흔한 형태이다.
URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다.
대부분의 URL은 세 부분으로 이루어져 있다.
스킴 : 리소스에 접근하기 위해 사용되는 프로토콜(https://)
인터넷 주소 : velog.io
웹 서버의 리소스 : /@honeysuckle
URL은 세상에 존재하는 모든 객체에 이름을 지을 수 있고, 포맷을 쉽게 추가 할수 있으며, 일관된 작명 규칙을 제공하는 강력한 도구이다.
하지만 URL이 완벽한 것은 아니다. 단순 주소이지 실제 이름은 아니다. 리소스가 옮겨지면 더는 해당 주소를 사용 할 수 없다.
이런 문제 해결의 이상적인 해법은, 객체 위치와 상관없이 실제 객체의 이름을 사용 하는 것이다.
URN은 객체의 절대 위치를 가리킨다.
PURL을 사용하면 URL로 URN의 기능을 제공 할 수 있다. PURL은 리소스의 실제 URL 목록을 관리하고 추적하는 리소스 위치 중개 서버를 두고, 해당 리소스를 우회적으로 제공한다.
한동안 URN 방식이 활용되었었다. 그러나 URL에서 URN으로 주소 체계를 바꾸는 것은 매우 큰 작업이다.
전환하기 위해선 시간이 걸리기 때문에 당분간 URL이 계속 사용될 것이다.
URI는 인터넷에서 사용되는 고유한 정보 리소스(주소)이다.
URL은 URI의 하위개념으로 URI의 종류에는 URL, URN 이 있다.
대부분의 URI는 URL로 구현되어 있어, 사실상 동일한 의미를 갖는다.
참고
- HTTP 완벽 가이드 - 2장 URL과 리소스