개발자의 공부방/웹

URL 과 URI 는 무슨 차이일까???

  • -
728x90
반응형



웹 백엔드 부분을 만들면서 항상 궁금한 게 URI 는 뭔데 자주 등장할까 라는 생각이 들었습니다.


URL 은 누구나 다 알 수 있었던 부분인데 URI 는 너무 낯설어서 찾아보기로 했습니다.



===================================================================================================================


원글

출처 : https://blog.lael.be/post/61



URL : Uniform Resource Locator


URI : Uniform Resource Identifier


입니다.


단어의 뜻으로 해석을 하면 URL 은 파일의 위치를 부르는 것이라 한다면,


URI 은 Rewrite 등의 Apache, IIS, Tomcat 등의 처리하는 자원 식별자라고 부른다.





그냥 단어의 뜻대로 해석하자면 예전에는 URL이 가리키는게 자원(파일) 위치 였는데


요즘은 Rewrite 등의 Apache , IIS, Tomcat 핸들러 때문에 자원 식별자 이라고 부른다.


 


즉 요즘에는 웹사이트 주소가 (http://test.com/company/location) 라고 했을 때


요청하는 주소가 파일이라기 보다는 구분자로 보는 것이다.


실제로 해당 웹사이트의 company/location 라는 파일은 없다.


 


요약하자면 URL 은 다음과 같다.


http://test.com/work/sample.pdf


test.com 서버에서 work 폴더안의 sample.pdf 를 요청하는 URL.


 


URI(통합 자원 식별자) 의 예는 다음과 같다.


1) rewrite 기술을 사용하여 만든 의미있는 식별자

http://test.com/company/location


 


2) REST 서비스 (url로 실행되는 서비스)

http://service.com/tv/turn/on


 


3) Web-oriented architecture (웹 기반의 구조문법)

kakaotalk://sendmsg?text=hello!  (이 uri는 kakaotalk 프로토콜을 해석할 수 있는 프로그램이 핸들링한다. 해당프로그램은 sendmsg 라는 식별자를 해석하고 동작한다.)

facebookmsg://like?url=mysite.com (이 uri는 facebookmsg 프로토콜을 해석할 수 있는 프로그램이 핸들링한다. 해당프로그램은 like 라는 식별자를 해석하고 동작한다.)


 


 


이해하기 쉽게 동물로 표현하자면.


URI(동물) 가 좀더 상위 개념이라서 URL(강아지), URN(다람쥐) 등의 하위 개념을 포함한다.


 


URI 와 URL 이 아예 다른게 아니라 포함관계라서


모든 URL 는 URI 이다. 가 성립힌다. (TRUE)


URI = URL + URN


[위키피디아 참조 : 통합자원식별자]




위키백과 보고 조금 더 추가합니다.


요즘 URI를 쓰는이유가 URN 때문은 아닐 것이라 생각하지만 그래도 알아두면 좋을것 같아서 관련내용을 작성해봅니다.


URI 가 URL과 URN을 포함하는데 URN은 Uniform Resource Name 의 약자입니다.


URN 문법은


urn:isbn:0451450523


urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66


이런건데 isbn이나 uuid를 해석가능한 프로그램이 있어야 동작합니다.


 


예를 들어서 저만의 urn을 만들어보자면


urn:laelbe:blog-61


을 쓰고 laelbe 해석 프로그램을 만든다음에 https://blog.lael.be/post/61 으로 매칭하도록 짤수 있겠군요.




참고

출처 : https://blog.lael.be/post/61

출처 : http://sunychoi.github.io/java/2015/04/27/uri-url.html



 

반응형

'개발자의 공부방 > ' 카테고리의 다른 글

웹 기초] HTTP Session 공부  (4) 2021.04.28
Web 컴포넌트란?  (0) 2019.04.24
클라이언트란?  (0) 2019.01.11
GET 방식과 POST 방식의 차이점  (0) 2018.11.28
웹 컨테이너란??  (0) 2018.11.28
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.