ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • URI vs URL vs URN 차이
    컴퓨터상식/네트워크,통신 2022. 3. 10. 10:25

    ✨ URI란?

    은행계좌는 계좌번호, 버스는 노선번호, 사람은 주민등록번호로 구분되듯 웹 서버의 리소스 또한 각자의 이름이 있다. (클라이언트가 요청할 때 찾아야하니까, id같은 고유한 식별값이 있어야겠지!) 이때 서버 리소스 이름(식별자)을 uniform resource identifier(통합 자원 식별자), URI라고 부른다. URI는 두가지 종류가 있는데, 이는 URL과 URN이다. 즉, URL이 URI에 포함되는 개념이다❗️


    ✋ 리소스란?

    웹 서버는 웹 리소스를 관리하고 제공한다. 어떤 종류의 콘텐츠도 리소스가 될 수 있다. 리소스는 텍스트 파일, html파일, 워드, JPEG 이미지 파일 등의 정적 파일이 될 수도 있고, 주식거래, 인터넷 검색엔진 등 요청에 따라 콘텐츠를 생산하는 프로그램도 모두 리소스(동적 콘텐츠 리소스)가 될 수 있다. 


    🙄 URL과 URN이란?

    위에서 말한 것 처럼 uri는 url과 urn, 두 종류가 있다.

    URL (Uniform Resource Locator)

    URL은 리소스의 가장 흔한 형태로, 특정 서버의 한 리소스에 대한 구체적인 위치를 서술한다. (오늘날 대부분의 uri는 url이다.)

    URL 표준 포맷

    대부분의 url 스킴의 문법은 일반적으로 9개 부분으로 나뉜다.

    <스킴>://<사용자 지름>:<비밀번호>@<호스트>:<포트>/<경로>;<파라미터>?<질의>#<프레그먼트>

    하지만 이 중 url의 가장 중요한 컴포넌트는 스킴, 호스트, 경로이다.

    예시) http://www.seoyoung.com/images/logo.gif

    • http:// : 스킴(scheme), 리소스에 접근하기 위해 사용되는 프로토콜 (웹 클라이언트가 리소스에 어떻게 접근하는지 알려줌) (보통 HTTP)
      👉 대표적인 스킴 종류: ftp(file transfer protocol), rtsp(real time streaming protocol, 비디오 서버), smtp(메일) 등
    • www.seoyoung.com : 서버의 인터넷 주소 (리소스가 어디에 호스팅되었는지)
    • /images/logo.gif : 웹서버의 리소스 (리소스 경로)

    URN (Uniform Resource Name)

    urn은 uri의 두번째 종류이며, 콘텐츠를 이루는 한 리소스에 대해, 그 리소스 위치에 영향 받지 않는 유일무이한 이름 역할을 한다. Url은 리소스가 이동된 경우 리소스의 위치인 url이 더 이상 유효하지 않게 되는 문제가 있지만, urn은 리소스를 여기저기로 옮기더라도 문제없이 동작한다.
    하지만, 이미 널리 상용화된 url 주소 체계를 urn으로 완전히 바꾸는 것은 엄청난 작업량을 요구하고, http 어플리케이션을 수정하기 위한 벤더들과의 합의도 필요하다. 따라서 시간이 매ㅐㅐㅐ우 걸리기 때문에 url은 꽤 오랫동안 계속해서 사용될 것이다.

     

    <URI 예시>

     

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

    요청하는 주소가 파일의 위치를 말하는 것(Location)이기 보다는 구분자(Identifier)로 보는 것이다.

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

    (아마도 company 클래스 location 메소드를 호출할 것이다. 이렇게 구분자(Identifier)로 보는 것이 URI 이다.)

     

    <URL 예시>

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

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

     


     

    👉 URI의 구성 (URI의 구성요소라기 보다는 URL의 구성요소, 왜냐하면 URN은 다른 형식임)

    • scheme(가장 먼저 작성) : 통신 방식(프로토콜)을 결정한다. 일반적인 웹 브라우저에서는 http(s)를 사용한다.
    • hosts : 웹 서버의 이름, 도메인, IP를 사용하며 주소를 나타낸다.
    • url-path : 웹 서버에서 지정한 루트 디렉토리부터 시작하여 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명을 나타낸다.
    • query는 웹 서버에 보내는 추가적인 질문이다.

     

    • URL은 웹 상의 주소를 나타내는 문자열이기 때문에 더 효율적으로 리소스에 접근하기 위해 클린한 URL 작성을 위한 방법론들이 생겨났는데 REST API도 그 중 하나이다. (파일이 존재하는 것은 아니지만 프로그램을 돌려서 결과로 만들어진 리소스를 표현한 것도 URL, 예를 들면 데이터베이스의 학생 목록 같은 것들을 자원을 URL로 정의해서 CRUD하는 REST API가 그러함, Query하여 좀 더 자원을 특정한다고 하여 URL이 아니지 않음)

    👉 URL & URI 구성 표

    부분명칭설명

    file://, http://, https:// scheme 통신 프로토콜
    127.0.0.1, www.google.com hosts 웹 페이지, 이미지, 동영상 등의 파일이 위치한 웹 서버, 도메인 또는 IP
    :80, :443, :3000 port 웹 서버에 접속하기 위한 통로
    /search, /Users/username/Desktop url-path 웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등의 파일이 위치까지의 경로
    q=JavaScript query 웹 서버에 전달하는 추가 질문

    댓글

Designed by Tistory.