on
[Web] URL과 URI의 차이
[Web] URL과 URI의 차이
우리는 흔히 인터넷 상의 주소를 부를 때 URL이라는 단어를 사용합니다. 그러나 URL뿐만 URI라는 개념도 존재하기에 이 둘의 차이점을 알아보도록 하겠습니다.
URL(Uniform Resource Locator)
URL은 흔히 웹 주소라고도 하며, 컴퓨터(서버) 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약입니다.
흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터(서버) 네트워크상의 자원을 모두 나타낼 수 있습니다.
해당 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 합니다.
이와 같이, URL은 어떤 특정 지점의 위치 또는 파일 리소스(index.php, lecture.pdf 등)에 접근하기 위한 주소 값입니다.
URI(Uniform Resource Identifier)
URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미하며 컴퓨터(서버) 네트워크 상에서 리소스를 식별하는 고유한 문자열 시퀀스입니다.
URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닙니다.
URI의 하위 개념으로는 URL과 URN이 있습니다
URI의 구조
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
scheme : 사용할 프로토콜을 뜻하며 웹에서는 http 또는 https를 사용
user, password : (서버에 있는) 데이터에 접근하기 위한 사용자의 이름과 비밀번호
host, port : 접근할 대상(서버)의 호스트명과 포트번호
path : 접근할 대상(서버)의 경로에 대한 상세 정보
query : 접근할 대상에 전달하는 추가적인 정보 (파라미터)
fragment : 메인 리소스 내에 존재하는 서브 리소스에 접근할 때 이를 식별하기 위한 정보
정리 및 예시
즉, 간단히 정리하자면
URL (Uniform Resource Locator) – 서버에 있는 자원의 위치를 나타냄 (자원의 위치는 결국 하나의 파일 위치를 뜻함)
URI (Uniform Resource Identifier) – 해당 자원의 식별자(ex 아이디)
이렇게만 보면 무슨 말인지 이해하기 어렵기에 예시를 보겠습니다.
- http://chan.com/ - 서버의 주소
- http://chan.com/chan11 - 서버 자원의 위치
- http://chan.com/web/chan11 - 경로가 포함된 서버 자원의 위치
위의 예시는 모두 URL에 대한 예시입니다. URL은 URI의 하위 개념이기에 URL의 예시이면서 URI의 예시가 된다고 할 수 있습니다. 이처럼 URL은 서버의 주소뿐만 아니라 해당 서버의 자원의 위치까지 의미합니다.
- http://chan.com/web/chan22?id=111
- http://chan.com/web/chan22?id=122&name;=kim
위의 예시는 URI에 대한 예시로 URI는 맞지만 URL은 아닙니다. URL예시와 차이를 살펴보면 자원의 위치 뒤에 ?가 붙어있는 것을 볼 수 있습니다. ?뒤에는 자원의 식별자 값(id=111, id=122&name;=kim)이 옵니다. 따라서 이렇게 식별자 값이 붙는 주소를 URI라고 볼 수 있겠습니다.
- http://chan.com/web/chan22 - URL (자원 위치)
- http://chan.com/web/chan22?id=111 - URI (자원 식별자)
- http://chan.com/web/chan22?id=111
- http://chan.com/web/chan22?id=222
또 다른 예시로 위의 주소는 URL은 같다고 볼 수 있지만 URI는 다르다고 할 수 있습니다. id라는 쿼리 값에 따라 결과가 달라지게 됩니다.
[참고사이트]
https://velog.io/@jch9537/URI-URL
from http://chan-it-note.tistory.com/104 by ccl(A) rewrite - 2021-09-10 20:26:33