URI & URL

jch9537·2020년 3월 25일
27

WEB

목록 보기
4/10
post-thumbnail

웹개발 공부를 하면서 URL과 URI에 대해 자주 들었지만 둘 사이의 명확한 차이점을 알지 못해 정리를 해보게 되었다.
결론부터 말하면 URI가 URL의 상위개념이며 공부를 하며 느낀 점은 URL이라고 부르기보다 URI로 부르는 게 좀 더 정확하지 않을까라는 생각이 들었다.
아래는 URI에 대한 그림이다.

설명과 같이 URI는 URL과 URN을 포함하고 있다.
URI는 Uniform Resource Identifier
URL은 Uniform Resource Locator
URN은 Uniform Resource Name
의 약자이다.
자원의 식별자(URI), 위치(URL), 이름(URN)으로 유추해 볼 수 있다.

  • 위키 정의
    • URI : 통합 자원 식별자(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI의 하위개념으로 URL, URN 이 있다
    • URL : URL(Uniform Resource Locator, 문화어: 파일식별자, 유일자원지시기)은 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 즉, 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다. 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.
    • URN : URN(Uniform Resource Name, 통합 자원 이름)은 urn:scheme 을 사용하는 URI를 위한 역사적인 이름이다. URN은 영속적이고, 위치에 독립적인 자원을 위한 지시자로 사용하기 위해 1997년도 RFC 2141 문서에서 정의되었다.

위의 그림을 통해 URI와 URL의 차이에 대한 나의 이해를 정리해보자면
(예가 정확하지 않을 수는 있지만 차이에 대한 나의 이해이다.)
예를 들어 http://opentutorials.org:3000/main?id=HTML&page=12 라고 되어있는 주소가 있다.

여기서 http://opentutorials.org:3000/main 여기까지는 URL이고(URI이기도 한)
http://opentutorials.org:3000/main?id=HTML&page=12 이 것은 URI라고 할 수 있다. (URL은 아닌)

이유는 URL은 자원의 위치를 나타내 주는 것이고 URI는 자원의 식별자인데
?id=HTML&page=12 이 부분은 위치를 나타내는 것이 아니라 id값이 HTML이고 page가 12인 것을 나타내주는 식별하는 부분이기 때문이다.

통상적으로 URL이라고 얘기를 하지만 정확하게는 URI라고 하는 것이 맞다고 생각한다.


차이에 대한 이해를 위한 다른 예

인터넷 상의 자원의 위치와 식별자.
언듯 보면 같은 것을 의미하는 듯 하다.
하지만 '자원의 위치'라는 것은 결국은 '하나의 파일 위치'를 나타내는 것임을 명심하자.

http://img0.gmodules.com/ig/images/korea/logo.gif
이와 같은 형식은 logo.gif라는 인터넷상의 자원 위치를 의미 한다.
이는 URI이면서도 URL라고 말할 수 있다.

다음은 어떠한가.
http://endic.naver.com/endic.nhn?docid=1232950
http://endic.naver.com/란 서버에 위치한 endic.nhn파일은 query string인 docid의 값에 따라 여러가지 결과를 나타낸다.

여기서 URL은 endic.nhn의 위치를 표기한 http://endic.naver.com/endic.nhn 까지이다.
내가 원하는 정보에 도달 하기위해서는 ?docid=1232950라는 식별자(Identifier)가 필요한 것이다.

결국 위의 http://endic.naver.com/endic.nhn?docid=1232950 주소는 URI이긴 하지만 URL은 아니다.

또다른 예를 들면,
http://endic.naver.com/endic.nhn?docid=1232950
http://endic.naver.com/endic.nhn?docid=1232690
위 두 주소는 같은 URL이고 다른 URI라고 할 수 있다.
(이건 좀 억지긴 하지만 개념을 이해하기 바란다.)

출처: http://lambdaexp.tistory.com/39 [프로그래머 인생길..]

profile
주니어 개발자

4개의 댓글

comment-user-thumbnail
2020년 9월 28일

안녕하세요 글 잘봤습니다.
혼동 되는 점이 있는데 위키를 보면(https://ko.wikipedia.org/wiki/URL)
URL 스킴은 아래와 같습니다.

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

쿼리스트링을 포함하는 경우도 URL라고 하네요..

1개의 답글
comment-user-thumbnail
2021년 8월 7일

좋은 글이네요.
잘 읽고 가요.

답글 달기