-
Uniform Resource의 세가지 그림자 (URI & URL & URN)CS(ComputerScience) 2022. 1. 30. 10:58
안녕하세요. 그린입니다🟢
이번 포스팅에서는 Uniform Resource의 구성인 URI, URL, URN에 대해 학습해보겠습니다🙌
개념과 사용은 익히 다들 서버 통신하면서 알고 계셨을거에요.
저도 마찬가지였는데 정리를 간단히라도 해본적이 없더라구요..?🧐
그래서 오랜만에 미디엄에서 URI를 다룬 글을 보다가 내가 이들의 차이를 정확히 알고 있는건가?
두루뭉실하게 알고만 쓰는게 아닌가 생각이 들었어요🥲
그렇기에 이번 포스팅을 빌미로 딱 핵심으로 차이와 특징을 정리해보려합니다👍
URI와 구성요소인 URN, URL의 관계도
URI
URI는 통합 자원 식별자를 뜻하는 Uniform Resource Identifier의 약자로 인터넷에 있는 자원을 나타내는 유일한 주소!
URI는 인터넷 및 통신에서의 디폴트 조건으로 인터넷 프로토콜에 붙어 다닙니다.
여기까지가~ 나무위키의 대략적인 정의입니다.
뭐 사실 더 풀어 쓸 말이 없어요🥲
정리하자면 모든 인터넷 자원에는 URI를 가지고 있는겁니다!
URI 표현방법
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
URI는 이런 문법으로 표기된다고 합니다.
저기서 scheme은 http나 https, urn같은 것들이 될 수 있어요.
우리가 도메인으로 많이 쓰는 URL형식들이 이것에 포함되죠.
즉 웹에서의 리소스 자원을 식별하는 문자열 시퀀스입니다🚀
URI 구조
위에서 표현방법에서 설명한 부분을 하나씩 어떤 의미인지 파해쳐보죠!
- scheme
해당 URI가 사용될 프로토콜로 보통 http, https를 사용하며 ftp나 mailto와 같은 형태도 사용됩니다.
- user
리소스에 접근하는 유저 이름
- password
리소스에 접근하는 유저 비밀번호
- host
접근할 리소스의 호스트명
- port
접근할 리소스의 포트번호
- query
리소스에 전달되는 파라미터 정보
- fragment
리소스의 하위 리소스 접근에 필요한 식별 정보
URL
URL은 Uniform Resource Locator의 약자로 간단히 URI의 주소라고 보면 됩니다.
즉 인터넷에서 웹, 영상, 이미지 등의 자원의 위치를 표기하는 문자열입니다.
흔히 우리는 웹 주소 혹은 링크로 부르고 있습니다.
URL 표현방법
scheme://<user>:<password>@<host>:<port>/<url-path>
어디서 많이 본것 같죠?
위에서 URI의 표현방법과 상당히 겹치죠!
그도 그럴것이 뒤 query하고 fragment 문자열 부분 빼고는 동일합니다.
즉 URI에서 URL이 구성요소로 들어감을 확인시켜줍니다.
scheme은 보통 우리는 HTTP URL scheme을 많이 사용합니다.
대개 익숙하신 웹 주소들이 이 형태를 띄고 있습니다.
URN
통합 자원 이름을 뜻하는 Uniform Resource Name의 약자로 URI의 이름이라고 보면됩니다.
URL은 주소가 바뀌면 리소스를 찾을 수 없는 단점이 있습니다.
그에 URN은 리소스의 위치에 영향을 받지 않는 즉 URL처럼 주소가 바뀌어도 무방한 이름과 같은
영속성의 역할을 가집니다.
다만 아직 URN을 채택하여 쓰지 않기에 굉장히 낯설거에요🥲
정리하자면 URL은 주소이기에 해당 주소가 조금만 바뀌어도 리소스를 찾을 수 없고
URN은 고유의 영속한 이름이기에 그것과 상관없이 리소스의 위치가 바뀌어도 찾을 수 있습니다.
즉 우리는 URL이 표준이라 URN을 만날 기회가 없을것 같지만 미래에는 이 규약이 바뀔수도 있겠죠🧐
URN 문법
<URN> ::= "urn:" <NID> ":" <NSS>
배커스-나우르 표기법을 사용합니다.
예를들어 이런식으로 나타납니다.
green.org/img.png
이렇게 고유한 이름으로 표기됩니다.
마무리
간단히 3개의 차이를 명확히 알아본 시간이였습니다.
사실 개념적으론 되게 간단한 내용인데 항상 서버 및 통신은 뭔가 어렵게 느껴져요..ㅋㅋ
이 포스팅이 차이가 헷갈리는 분들께 도움이 되었으면 좋겠습니다🙌
참고자료
https://ko.wikipedia.org/wiki/통합_자원_식별자
'CS(ComputerScience)' 카테고리의 다른 글
Turing machine (튜링 머신) (46) 2023.09.21 동일성과 동등성 (0) 2021.07.21 연결 리스트 (2) 2021.05.20 큐 (Queue) (0) 2021.05.19 스택 (0) 2021.05.18