URL vs URI vs URN

동현·2022년 7월 21일
0
URI vs URL vs URN

이 글은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 을 기반으로 작성된 글 입니다.

SOPT 서버파트 앱잼을 진행하면서 웹 개발을 진행하게 되었습니다. 이때 URI, URL 이란 말을 많이 들어왔었다. 가장 익숙한 단어는 URL 이지만 종종 둘을 차이를 두지 않고 사용하는 사람들을 보면서 그 두 단어가 의미하는 뜻을 다뤄봐야겠다는 생각을 하게 되었습니다.


URI와 URL URN

URI

  • U - Uniform의 약자로 리소스를 식별하는 통일된 방식
    R - Resource의 약자로 자원을 의미하며 URI를 사용하여 식별할 수 있는 모든 것을 의미한다.
    I - Identifier의 약자로 다른 항목과 구분하는데 필요한 정보를 의미 (구글, 다음을 구분하려면 각자의 주소가 다른 것과 유사함)

URL

  • U와 R을 같은 의미를 뜻한다.
    L - Locator을 의미하며 리소스가 있는 위치를 지정 ( URI의 I 를 주소를 통해 구분한다.)

URN

  • U와 R을 같은 의미를 뜻한다.
    N - Name을 의미하며 리소스의 이름을 나타냄 ( 리소스의 고유한 이름을 식별자로 리소스를 구분한다.)

각 단어의 뜻 풀이만 보면 URI가 URL과 URN을 포함 한다는 걸 알 수 있다.

  • 위 그림과 같이 URI는 자원을 식별하는 통합된 방법으로 URN과 URL이 각각의 식별하는 방법의 차이를 가진채 URI에 속한다.
  • 보통의 경우 URI를 URL과 같은 의미로 쓰는 경우가 많다.

URL vs URN

그렇다면 URL과 URN는 어떠한 차이가 있을까?

앞에서도 말했듯이 URL은 위치, URN은 이름을 나타낸다.

위의 표현이 URL 우리가 흔히 아는 주소이며 아래는 자원의 이름을 나타낸다.
우리가 자원을 분류 할때 URL을 사용하는 이유는 다음과 같다.
원하는 자원을 찾기위해서는 이름과 함께 해당 자원이 매핑이 되어있어야하지만 이는 구현하기 힘들기 때문에 URN 이름만으로 실제 리소스를 찾는 방법이 보편화 되어있지 않다.


URL의 문법

  • scheme -> 대부분의 프로토콜 정보가 들어간다. (Https)
    • 프로토콜은 어떤 방식으로 자원에 접근할 것인가에 대한 규칙으로
      ex) https, http, ftp 등
  • userinfo -> URL에 사용자 정보를 표현할때 사용한다. (실제로는 거의 사용하지 않음.
  • host -> 도메인 명이나 IP 주소 직접 사용 (www.google.com)
  • port -> 생략이 가능함
  • path -> 리소스가 있는 경로 (/search)
    • 계층적 구조이다.
      ex) /members/100
  • query -> ?로 시작하며 key-value 형태 (?q=hello&hl=ko)

Reference

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/

profile
여긴 어디 나는 누구?

0개의 댓글