스노우보드 참 좋아하는데 맨날 키보드 앞에만 있네

URL과 URI 그리고 URN 본문

개발/Java, SpringFramework

URL과 URI 그리고 URN

워너-비 2017. 10. 25. 18:28

<!-- 본 포스팅은 개인공부를 위한 용도로 잘못된 정보가 있을 수 있습니다. 오류 발견시 댓글 환영합니다. -->

URL과 URI 그리고 URN의 차이





어쩌다 "URL과 URI의 차이가 뭐야" 라는 질문을 받게 되었는데, 명확한 대답이 나오질 않았다.


이참에 정리를 해보자


글을 읽는 당신도 "둘다 그냥 인터넷 주소 아니야?" 라고 대답하게 된다면


... 공부하면 된다.





URL, URI, URN은 모두 네트워크 리소스를 나타낸다.




URI (Uniform Resource Identifier)


URI는 '통합 자원 식별자'로 해석할 수 있다.

텍스트 페이지, 비디오, 프로그램 등 콘텐츠와 같은 리소스 중 어느 하나를 인식하기 위한 문자열이다.


    • 자원에 접근하기 위해 사용되는 절차
    • 어떤 자원을 가지고 있는 컴퓨터
    • 컴퓨터에서 특정한 파일의 이름


URI은 URL, URN의 상위개념이다.

URL과 URN도 리소스를 가리키지만, URI는 이들보다 더 넓은 의미로 모든 정보의 리소스를 가리키는 식별자이다.



 

URL (Uniform Resource Locator)


URL은 URI의 가장 일반적인 형식로 웹 사이트 주소 뿐만 아니라 컴퓨터 네트워크상 모든 자원을 나타낸다.

쉽게말해 리소스의 위치를 나타내는 것이다.

브라우저 주소 표시줄에 URL을 입력하여 그와 연관된 리소스를 로드하도록 지정할 수 있다.


위치를 기반으로 하기 때문에 해당 위치의 자원이 없어지게되면 검색수단으로써 기능을 상실한다.


URL은 서로 다른 파트들로 구성되며, 프로토콜, 도메인이름, 파일이름 등이 있다.




URL의 구성


http://www.tistory.com:8080/wanna-b.html?id=value1&pw=value2#Join

URL이 위와 같다고 할때, 구성에 대해서 알아보도록 하자



1. 스킴 혹은 프로토콜 (http://)

주소에 접속하기 위해서는 해당 URL에 알맞는 프로토콜로 접속해야한다.

FTP프로토콜의 경우 FTP클라이언트를 이용해 접속하며,

우리에게 친숙한 HTTP(혹은 보안이 적용된 버전인 HTTPS)의 경우 웹 브라우저를 이용한다.


2. 도메인 이름 (www.tistory.com)

네임스페이스를 관리하는 도메인 이름 혹은 권한이다.

어떤 웹 서버가 요청을 받게 될지를 나타낸다.


3. 포트 (:8080)

웹 서버 상의 리소스에 접근하는데 사용되는 기술적인 gate를 나타낸다.

리소스에 접근하기 위한 권한을 얻기 위해 웹 서버가 HTTP 프로토콜의 표준 포트를 사용하는 경우 일반적으로 생략되지만, 그 외에는 반드시 포트 입력을 해주어야 한다. (HTTP의 표준포트는 80, HTTPS는 443)


4. 경로 (/wanna-b.html)

웹 서버상의 리소스 경로이다. 초기 웹에서 이 경로는 웹 서버상에 있는 파일의 실제 위치를 나타냈었다.

오늘날에는 대부분 물리적인 실제 위치를 사용하지 않고, 웹 서버에 의해 다뤄지는 추상화를 사용한다.


5. 쿼리 (?id=value1&pw=value2)

웹 서버에 제공되는 추가적인 파라미터이다.

&로 구분되는 키/값 쌍으로 이루어져있다.

웹 서버는 리소스를 사용자에게 반환하기 이전 작업을 위해 파라미터를 사용한다.


6. 프래그먼트 (#Join)

리소스 자체의 다른 부분을 가리키는 앵커이다.

북마크의 한 종류이며, 브라우저에 북마크된 지점에 위치한 컨텐츠를 보여주기 위한 방법으로 쓰인다.

HTML 문서에서 브라우저는 앵커가 정의된 지점으로 스크롤된다.

비디오나 오디오 파일에서 브라우저는 앵커가 나타내는 시점으로 이동한다.

프래그먼트는 서버에 전달되지 않는다.





URN (Uniform Resource Name)


URL을 보완하고자 URN이 만들어졌다.

URN은 개별적인 네임스페이스 내에서 리소스를 식별하는 URI를 말한다.


예시)

urn:isbn:9780141036144

urn:ietf:rfc:7230


위 두 개의 URN은 다음 내용을 나타낸다.

George Orwell이 쓴 1984년이라는 책

IETF 스펙 문서 7230, Hypertext Transfer Protocol (HTTP/1.1):Message Syntax and Routing.


위치에 의존하는 URL과 달리 URN은 리소스의 이름 자체를 나타내기 때문에 영속성을 지닌다.


URN이 사람의 이름이라면, URL은 사람이 집주소로 비유할 수 있다.

즉 URN은 항목을 식별하고, URL은 이를 찾는 방법을 제공한다. 





출처 : MDN web docs (https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_URL)


Comments