RESTFul API에 대해서 공부를 하다보면 URI라는 표현을 종종 사용한다.
언뜻보면 URL이랑 별다른 차이점이 없어보이지만 세세하게 따지고들면 엄연한 차이가 있다.
결론부터 말하면 URI는 URL의 의미를 품고있다.
URL(Uniform Resource Locator)은 자원이 실제로 존재하는 위치를 가리키며, URI(Uniform Resource Identifier)는 자원의 위치뿐만 아니라 자원에 대한 고유 식별자로서 URL을 의미를 포함한다.
URL과 URI의 차이점에 대한 몇가지 예시를 들기전에 짚고 넘어가야할 부분이 있다.
우리가 인터넷 환경에서 자원을 식별하기위해 사용하는 방법에는 Path Variable 방식과 Query Parameter 방식이 있다.
Path Variable 방식은 다음과 같다. 이는 어떤 특정한 자원을 보여줘야할때 사용된다.
/user/1
/user/2
/user/3
Query Parameter 방식은 다음과 같다. 이는 자원들을 필터링해서 보여줄때 사용된다.
/user?job=student
/user?job=student&age=10
이제 본론으로 돌아와 URL과 URI의 차이점에 대한 몇가지 예시를 들어보자.
위의 예시에서는 torang.co.kr 에서 index라는 경로를 나타내고 있다.
서버에서는 해당 라우팅에대한 알맞은 자원을 전송해줄 것이며 이는 자원의 실제 위치이므로 URL이다.
2) http://torang.co.kr/user/107
위의 예시에서는 torang.co.kr 에서 107의 ID값을 가지고있는 자원을 식별하고있다. 따라서, http://torang.co.kr/user/ 까지는 자원의 실제 위치이기 때문에 URI임과 동시에 URL이며 끝의 /107 부분은 식별자이므로 http://torang.co.kr/user/107은 URL(http://torang.co.kr/user/)을 포함한 URI라고 볼 수 있다.
3) http://torang.co.kr/user?id=107
위의 예시에서 마찬가지로 http://torang.co.kr/user 까지는 자원의 실제 위치를 나타내기 때문에 URL이라고 할 수 있으며, 뒤의 쿼리스트링 식별자(?id=107)를 포함하여 URI라고 볼 수 있다.
참고하기 좋은 글
https://www.charlezz.com/?p=44767
(URI랑 URL 차이점이 뭔데? 글쓴이 Charlezz 날짜 2021년 3월 4일)
안녕하세요! 예시 1번의 경우 URI가 아닐까요?!
첨부해주신 참고 사이트 보는데 헷갈려서 질문 드립니다.
"실제로 index라는 파일이 웹서버에 존재하지 않으므로 URL은 아니다. 하지만 서버 내부에서 이를 처리하여 결국 index.html을 가리키기 때문에 URI라고 볼 수 있다."