[Networks] URI와 PURL
URI(Uniform Resource Identifier)
웹 서버 리소스는 각자 이름을 갖고있다. www/index.html image/caputdraconis.png와 같다.
이러한 리소스의 이름을 사용해 클라이언트는 관심 있는 리소스를 지목할 수 있다.
이러한 서버 리소스 이름을 통합 자원 식별자, URI(Uniform Resource Identifier) 라고 부른다.
http://www.caput.dev/images/chewchewkim.jpg
위와 같은 URI는 HTTP 프로토콜에서 아래의 그림과 같이 해석된다. HTTP는 주어진 URI로 클라이언트가 찾고자 하는 객체를 찾아온다.
이러한 URI에는 URL과 URN 두 가지가 있다.
URL(Uniform Resource Locator)
통합 자원 지시자(Uniform Resource Locator, URL)는 현재 리소스 식별자의 가장 흔한 형태이다.
Locator라는 이름에서도 알 수 있듯이 URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 서술함으로서 리소르를 지목한다.
URL은 리소스가 정확히 어디에 있고, 어떻게 접근할 수 있는지 분명히 알려준다.
http://www.caput.dev/images/chewchewkim.jpg
caputdraconis.dev 홈페이지의 사진 파일을 지목하는 URL이다. 이는 위에서 URI를 설명할 때 사용한 URI 예시와 동일하다. 이는 오늘날 대부분의 URI는 URL이기 때문이다.
http:// | 스킴이라고 부른다. 리소스에 접근하기 위해 사용되는 프로토콜을 서술한다. |
www.caput.dev | 서버의 인터넷 주소를 제공한다. IP 주소로도 대체 가능하다. |
/images/chewchewkim.jpg | 웹 서버의 리소스를 가리킨다. |
URN(Uniform Resource Name)
유니폼 리소스 이름(Uniform Resource Name, URN)은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다. 리소스의 위치가 옮겨지더라도, 위치 독립적인 URN은 문제없이 동작한다. 리소스의 이름을 변하지 않게 유지한다면, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제 없다는게 장점이다.
아직 실험 중인 상태이며, 널리 채택되지 않았다. 효율적인 동작을 위해 URN은 리소스 위치를 분석하기 위한 인프라 지원이 필요한데, 그러한 인프라의 부재로 채택이 늦춰지고 있다.
PURL(Persistent Uniform Resource Locators)
PURL을 사용하면, URL로 URN의 기능을 제공할 수 있다. PURL은 리소스의 실제 URL 목록을 관리하고 추적하는 리소스 위치 중개 서버를 두고, 해당 리소스를 우회적으로 제공한다. 아래의 사진은 PURL을 사용하여 죠의 컴퓨터 가게(HTTP 완벽 가이드에서 사용하는 예시 페이지)의 URL이 무엇인지 물어보고, 그에 대한 결과값으로 리소스의 현재 위치를 받은 사진이다.
PURL은 영구 URL이며, 웹의 리소스에 액세스하기 위한 영구 주소를 제공한다. 사용자가 PURL을 검색하면 리소스의 현재 위치로 리디렉션된다. 서버 관리자가 페이지(리소스)의 위치를 옮겨야 할 때 바뀐 새로운 위치를 가리키도록 PURL을 업데이트할 수 있다. 이를 통해 리소스의 위치가 변경되더라도 영구적인 주소를 제공할 수 있다.
[HTTP 완벽 가이드] 책을 읽고 정리한 내용입니다.
댓글
이 글 공유하기
다른 글
-
[Networks] Circuit Switching
[Networks] Circuit Switching
2023.05.16 -
[Networks] Store and Forward Transmission
[Networks] Store and Forward Transmission
2023.05.15 -
[Networks] AWS 로드 밸런싱 - ALB
[Networks] AWS 로드 밸런싱 - ALB
2022.01.20 -
[Networks] OSI 7 계층 정리
[Networks] OSI 7 계층 정리
2022.01.17