URI?, URL?, URN?
인터넷을 하다보면 한번쯤 접하게 되는 용어들이있다.
비슷한 이름을 가졌고 항상 헷갈렸었는데 어떤 개념인지 이번 기회에 정확하게 알고 넘어가면 좋을것 같다.
URI
인터넷을 돌아다니다보면 여러 페이지에 접근하게 되고 그 페이지 안에서 여러 자료들을 만나볼 수 있다. 이렇게 페이지를 이동하거나 그 안의 데이터들을 보는 것에도 규칙이 존재한다.
URI는 Uniform Resource Indetifier의 약자로서 특정한 자원(Resource)을 구별할 수 있는 방법이라는 의미이다.
우리가 어떤 페이지에서 다른 어떤 페이지로 이동할 수 있도록 구분하는 방법, 자료에서 자료를 확인할 수 있도록 구분하는 방법인 것이다.
이 방법에는 2가지 종류가 있는데 바로 URL(Location)과 URN(Name)이다.
URL
Uniform Resource Location의 약자로서 위치로서 자원을 구분하는 방법이다.
우리가 흔히 웹브라우저 위쪽에 적는 주소가 바로 URL이다. 약속된 규칙으로 만들어진 URL을 보고 자원이 있는곳을 찾아가는 방식이다.
oo시 oo구 ... 등의 주소를 통해서 위치를 찾는 방법과 유사하다. 거주지의 이름이 바뀌면 주소도 바뀌듯이 URL또한 주소가 바뀐다면 같은 자원이라도 바뀐 주소를 입력해야한다.
URL의 구조
- scheme://[userinfo@]host[:port]\[\path]\[?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- scheme : 프로토콜(https)
- https, http, ftp등의 프로토콜을 사용하고 http - 80, https - 443 포트를 사용하는데 이 두개를 사용할 때는 포트를 생략할 수 있다.
- userinfo@
- 사용자 인증정보를 포함해서 인증할 수 있는 것이다. 거의 사용하지 않는다.
- 호스트명(www.google.com)
- 도메인명이나 IP를 직접 입력할 수 있다.
- 포트번호(443)
- 접속 포트이다. 80이나 443같은경우는 생략이 가능하다.
- 패스(/search)
- Resource가 있는 경로이다. 계층적 구조로 이루어져 있다.
- 쿼리 파라미터(q=hello&hl=ko)
- ?로 시작한다.
- key=value 구조로 이루어져 있다.
- #fragment
- html내부 북마크에 사용되며 서버로 전송되는 정보는 아니다.
URN
Uniform Resource Name의 약자로서 이름으로 자원을 구분하는 방법이다.
완벽하게 정해진 이름으로 찾는 방법이다. URL처럼 변경되는 경우가 없기때문에 정확하게 찾아낼 수 있다.
위도를 이용해서 위치를 찾는 방법과 유사하다. 거주지의 이름이나 주변환경에 전혀 영향을 받지않고 사용할 수 있다.