URI

반응형
반응형

URI

unified Resource Identifier

리소스를 식별하기 위해 만들어졌다.

보통 URI == URL로 해석된다. 그 이유에 대해 설명할 예정이다.
그전에 다음과 같은 그림을 그려 보자.

N과 L은 리소스를 어떻게 식별할 것인지 나타내는 식별자 이다.
N : 이름별로

<URN> ::= "urn:" <NID> ":" <NSS>

이렇게 작성된다고 한다.
하지만 이 방법으로 리소스를 식별하는게 굉장히 어려워진다.
왜냐하면

urn:"book":"hello"

이것을 해석해 보면 book이라는 이름에서 hello라는 이름을 찾게 된다.
하지만 같은 이름이 여러개라면 어떨까요?
이 방식은 최근에는 사용되지 않는 방식이라고 한다.

L: 위치별로

어떻게 보면 이름별로 나누는것과 차이가 없다. 다만 이 방식의 장점은 어떤 프로토콜을 사용하는지, 어떤 웹사이트에서 사용되는지 쉽게 알수 있다. 
문법을 보면서 자세히 알아보자.

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

schema : 자원이 어떤 방식의 프로토콜로 접근하는지 작성한다.
user:password@ (userInfo@): 유저 정보를 작성한다.(최근에는 잘 사용되지 않는다.)
host : DNS로 구분된 IP주소를 작성한다.
port : 사용하는 프로토콜에서 어떤 포트를 작성할지 작성한다.(보통은 생략이 가능하지만, port가 2개이면 어쩔 건가?)
/ : url은 계층적으로 구분지어진다.
위 예제를 가져와서 설명해보면
book/hello 이렇게 바꿔서 작성 할 수 있다.(book하위에 존재하는 hello)
query : 검색여부를 작성한다.
  string query 혹은 parameter query라고도 불린다.
#fragment : 북마크를 이용할 때 사용된다. 
예를 들어, 싱글 페이지로 웹을 만들었다고 가정하자.
그런데 특정 위치로 위동하고 싶다. 

mockito 문서

주목해야되는건 주소창을 주목해보자 #XXX가 추가된것을 볼 수 있는데
이것이 바로 fragment라고 한다.
이것도 잘 사용은 하지 않지만 싱글 페이지 웹사이트에서는 생각보다 유용하게 사용될 것으로 생각한다.

결국은 URN은 잘 사용되지 않지만,
URL은 지금까지도 잘 사용되어지고 있다. 개발자가 아닌 일반사람이라면, URN의 형태 보다는 URL의 형태를 더 익숙할것이 뻔하기 때문이다.(반대도 URL이 더 익숙하겠지만 말이지만...)

고로 초반에 URI == URI로 말해도 상관없는것이 그 이유다.

 

 

반응형

'네트워크' 카테고리의 다른 글

데이터 이동  (0) 2021.01.05
TCP/IP 4계층  (0) 2021.01.04
네트워크 구축  (0) 2021.01.03
네트워크란?  (0) 2020.12.31
인터넷 프로토콜  (0) 2020.12.30

댓글

Designed by JB FACTORY