URL과 URI의 차이와 오해 (쿼리스트링은 URL이 아니다?)
- WEB
- 2022. 10. 16.
URI와 URL의 차이를 검색하면, 종종 둘의 차이에 대해 오해하고 있는 블로그 글들이 있는 거 같습니다. URI와 URL를 구분 짓는 기준으로 쿼리스트링(url 끝에 붙는 download.do?uid=1234& 형태의 파라미터) 포함 여부를 언급하는 경우입니다.
예를 들어, https://www.example.com/test.html까지는 url이 맞지만, https://www.example.com/test.do?id=1234&id2=5678처럼 구체적인 리소스를 찾아가기 위한 파라미터가 포함되면 더 이상 url은 아니라는 것입니다. 이것은 잘못된 정의입니다. 뒤에 파라미터가 붙어도 url이라고 부릅니다.
URI vs URL
URI
URI(Uniform Source Identifier)는 인터넷에서 리소스의 이름이나 위치 또는 둘 다를 사용해서 리소스를 식별하는 문자열입니다. 하위 집합으로 URL과 URN이 있습니다. URI는 URL을 포괄하는 개념입니다.
uri의 형식은 아래와 같습니다. []
로 표기한 건 생략 가능한 요소입니다.
scheme:[//authority]path[?query][#fragment]
위키피디아에서 가져온 예시를 첨부드리겠습니다. 내용을 확인해보면, 평소 인터넷을 쓸 때 사용하는 url 형식뿐 아니라 더 다양한 형태로 표기되는 걸 확인할 수 있습니다.
URL
URL(Uniform Resource Locator)은 웹에서 리소스의 위치를 알려주는 문자열입니다. 주로 웹에서 사용되기 때문에 http, https 프로토콜이 사용됩니다. url은 사용 시점에서 ‘고유하다’고 표현할 수 있지만, 서버 내 리소스 위치가 바뀔 수도 있는 거기 때문에 변경될 수 있습니다.
큰 틀은 uri와 동일하지만(url은 uri에 속해있기 때문에 당연하겠죠) 위 uri의 형식에서 authority 부분이 도메인 이름과 포트로 제한되는 점이 다릅니다.
URI과 URL의 주요 차이점
uri와 url의 주요 차이점을 정리하면 아래와 같습니다. 하위 집합 개념이니까 uri가 url과의 구별되는 요소가 무엇인지가 더 정확한 표현 같기도 하네요. 아래 포함된 예시를 보면서 확인해보시면 좋을 거 같습니다.
URI | URL |
리소스의 이름, 위치 모두 식별합니다. | 리소스의 위치만 식별합니다. |
특정 리소스를 다른 리소스와 구별하는 것이 목적입니다. | 웹 상에서 리소스의 위치를 찾는 게 목적입니다. |
html, css 뿐만 아니라 xml, jstl 등 기타 파일에서도 리소스를 찾는데 사용됩니다. | html, css 등으로 이루어진 웹 페이지를 찾는데만 사용됩니다. |
예시) urn:isan:0000-0000-2CEA-0000-1-0000-0000-Y ISBN 0-476-35557-4 https://google.com |
예시) https://google.com http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument |
참고한 문서
- URI vs URL | Difference between URI and URL : https://www.javatpoint.com/uri-vs-url
- Difference between URL and URI : https://www.geeksforgeeks.org/difference-between-url-and-uri/
- URI vs URL: Differences and When to Use Them : https://www.hostinger.com/tutorials/uri-vs-url
- Uniform Resource Identifier : https://en.wikipedia.org/wiki/Uniform_Resource_Identifier
'WEB' 카테고리의 다른 글
WEB 세션이란? 필요한 이유 (0) | 2022.11.01 |
---|---|
UTF-8 인코딩을 쓰는 이유 (유니코드) (0) | 2022.10.23 |
URL 인코딩이 필요한 이유 (0) | 2022.10.11 |
URL 구조 이해하기, 파라미터(parameter)란? (0) | 2022.10.09 |
World Wide Web이란? (인터넷과의 차이) (0) | 2022.09.29 |