글 작성자: 택시 운전사
반응형

이전까지는 URL만 알고 있다가, 학교에서 웹 프로그래밍 수업을 들었을때 URI라는 것을 처음 알게되었다. 그렇다고 찾아본 건 아니고, 현재까지도 일을 하면서 매번 URI, URL 구분없이 사용하고 있다. 구분없이 사용한다고 큰 문제는 생기지 않지만, 개발자는 명확한 정의를 아는 직업 아닌가? 이 기회에 URI와 URL의 정의와 용도를 통해 둘의 차이를 알아보자.

URI, URN, URL

URI

URI는 특정 자원(Resource)를 식별하는 통합 자원 식별자(Uniform Resource Idendifier)를 의미한다. 웹 상에서 논리적/물리적 리소스를 식별하는데 사용되는 고유한 문자열의 시퀀스이다. URI의 하위 개념으로는 URL과 URN이 있다.

URL

URL은 일반적으로 이야기하는 웹사이트 주소이다. 통합 자원 지시자(Uniform Resource Locator)라는 뜻이며, 컴퓨터의 네트워크 상에서 자원이 어디 있는 지 알려주기 위한 규약이다. URL은 웹사이트 주소 이외에도 컴퓨터 네트워크 상의 자원을 모두 나타낼 수 있다. 다만, 해당 주소에 접속하려면 해당 URL에 맞는 프로토콜로 접속해야한다.

URI와 URL의 차이

URL이 URI의 서브셋이라는 점에서 포함 관계인 것 이외에도 URI와 URL의 가장 큰 차이는 다음과 같다.

URI식별, URL위치

네트워크 상의 주소를 예시로 URI와 URL의 차이를 알아보자.

  • https://www.example.com
    • URI(O): https://www.example.com라는 고유한 식별자
    • URL(O): https://www.example.com라는 서버 자원
  • https://www.example.com/skin.css
    • URI(O): https://www.example.com/skin.css라는 고유한 식별자
    • URL(O): https://www.example.com이라는 서버에 존재하는 skin.css라는 실제 자원
  • https://www.example.com/fruits/banana/index.html
    • URI(O): https://www.example.com/fruits/banana/index.html라는 고유한 식별자
    • URL(O): https://www.example.com라는 서버의 fruits/banana 폴더 아래의 index.html이라는 실제 자원
  • https://www.example.com/123 (123은 실제 자원이 아닌 식별자 역할)
    • URI(O): https://www.example.com/123라는 고유한 식별자
    • URL(X): https://www.example.com까지만 URL 이후의 123은 실제 자원이 아님
  • https://www.example.com/fruits?id=123 (fruits는 실제 자원)
    • URI(O): https://www.example.com/fruits?id=123라는 고유한 식별자
    • URL(X): https://www.example.com/fruits까지만 URL 이후의 ?id=123은 실제 자원이 아님

사실, 둘의 차이를 이해하고 사용하는 건 위의 케이스들처럼 매우 복잡하다. 따라서 업무에서 단 한 가지 용어만 사용해야한다면 상위 개념인 URI를 쓰는게 편할 것이다.

반응형