본문 바로가기

Deprecated/HTTP

[Web/HTTP] URL, URN 그리고 URI의 차이점과 Path Variable, Query Parameter

일반적으로 HTTP의 요청 대상은 HTML 파일, 텍스트, 이미지, 동영상과 같은 리소스입니다. 각 리소스는 HTTP 전체에서 사용하는 URI에 의해서 식별됩니다. URI는 리소스 식별 방식에 따라서 URL과 URN으로 구분 할 수 있습니다.

  • URI는 웹에서 리소스 식별을 위해 사용됩니다.
  • URL과 URN은 URI의 서브셋입니다.

URL(Uniform Resource Locator)과 URI(Uniform Resource Identifier)

가장 일반적인 형식의 웹 주소로서 URL은 URI의 서브셋입니다.

  • 웹 서버에서 어떤 리소스를 찾아가기 위한 구체적인 경로를 표시하기 위해 URL을 사용합니다.
  • 웹 서버에서 어떤 리소스의 탐색을 위한 고유의 식별자를 표시하기 위해 URI를 사용합니다.
URL 비고
https://www.naver.com/ 네이버 웹 사이트 요청 URL
https://section.cafe.naver.com/ca-fe/ 네이버 카페 요청 URL
https://section.cafe.naver.com/ca-fe/home/search/combinations?q=food food 키워드로 검색되는 카페 목록 요청 URI이면서 동시에 URL

Path Variable과 Query Parameter

이전 섹션의 마지막 예시는 URL이면서 URI입니다. 이를 정확하게 이해하려면 우선 Path Variable과 Query Parameter 두 가지 표현 방식에 대한 이해가 필요합니다.

  • Path Variable는 리소스의 구체적인 경로를 지정합니다. 예시의 ".../ca-fe"입니다.
  • Query Parameter는 리소스의 필터를 질의합니다. 예시의 ".../combinations?q=food"입니다.

Path Variable을 사용하면 URL이라고 부르고, Query Paramter를 사용하면 URI라고 부릅니다. 하지만 Query parameter를 사용하려면 리소스의 구체적인 경로를 포함해야하는 문제가 있습니다.

URI = https://
(+Path Variable)section.cafe.naver.com/ca-fe/home/search
(+Query Parameter)/combinations?q=food
  • URL은 Path Variable로 표현합니다.
  • URI는 Path Variable과 Query Parameter를 혼용하여 표현합니다.
  • 따라서 Query Parameter를 포함하는 주소는 URI이면서 URL입니다.

URN(Uniform Resource Name)

URI의 또 다른 서브셋 중 하나입니다. URN은 컨텐츠를 이루는 어떤 리소스에 대한 경로 대신 개별적인 네임스페이스에서의 고유한 이름을 사용합니다.

  • URL은 웹 서버에서의 리소스 경로가 변경되면 기존 주소가 무효합니다.
  • URN은 리소스 경로 대신 고유한 이름을 사용하기 때문에 웹 서버에서의 리소스 경로 변경에 유연합니다.
  • 이처럼 URN은 URL의 한계를 극복하기 위해서 등장하였습니다.
urn:isbn:9780141036144
urn:ietf:rfc:7230