2.6. 미래

URL은 강력한 도구다.
URL은 세상에 존재하는 모든 객체에 이름을 지을 수 있고, 새로운 포맷을 쉽게 추가할 수 있게 설계됐다.
URL은 인터넷 프로토콜 간에 공유할 수 있는 일관된 작명 규칙을 제공한다.

하지만 URL이 완벽한 것은 아니다.
사실 URL은 주소이지 실제 이름은 아니다.
이는 URL이 특정 시점에 어떤 것이 위치한 곳을 알려준다는 것을 뜻한다.
URL은 리소스를 찾는데 필요한 포트와 서버 이름을 제공한다.
이런 스킴의 단점은 리소스가 옮겨지면 URL을 더는 사용할 수 없다는 것이다.
그리고 그 시점에 기존 URL이 가리키고 있던 객체를 찾을 방법이 없어진다.

이런 문제를 예방할 수 있는 이상적인 방법은, 객체의 위치와 상관없이, 그 객체를 가리키는 실제 객체의 이름을 사용하는 것이다.
사람처럼 리소스의 이름과 다른 몇 가지 정보만 있으면 그것의 위치가 바뀌더라도 리소스의 위치를 찾을 수 있다.

인터넷 기술 태스크 포스(Internet Enginerring Task Force, IEFT)는 한동안 고심한 끝에 URN(Uniform Resource Names)이라는 새로운 표준 작업에 착수하였다.
URN은 객체가 옮겨지더라도(웹 서버 내에서나 웹 서버 간 모두) 항상 객체를 가리킬 수 있는 이름을 제공한다.

지속 통합 자원 지시자(Persistent uniform resource locators, PURL)을 사용하면 URL로 URN 기능을 제공할 수 있다.
PURL은 리소스의 실제 URL 목록을 관리하고 추적하는 리소스 위치 중개 서버를 두고, 해당 리소스를 우회적으로 제공한다.

클라이언트는 위치 할당자에게 리소스를 가져올 수 있는 영구적인 URL을 요청할 수 있으며, 영구적인 URL은 클라이언트를 리소스의 실제 URL로 연결해준다.
PURL에 대한 더 다세한 정보는 https://purl.archive.org/open in new window를 참고하자.

PURL은 리소스의 현재 위치를 가리키기 위해서 리소스 위치 할당 서버를 사용한다.

1단계: 테스트 페이지의 URL이 무엇인지 리소스 리졸버에게 묻는다. 리졸버로부터 리소스의 현재 위치를 받는다.

    http://purl.oclc.org/test/ <---------> purl.oclc.org

2단계: 실제 URL로 리소스를 가져온다.

    http://www.test.com/ <----------> www.test.com