URI(Uniform Resource Identifier)
URI URN URL 차이점
URI는 로케이터(locator), 이름(name)또는 둘 다 추가로 분류될 수 있다
URI : 리소스를 식별한다
URL : 리소스의 위치
URN : 리소스의 이름이다
URN의 이름을 부여하면 문제는 리소스가 맵핑되어있지 않으면 거의 찾을 수가 없다
그래서 거의 URL만 쓴다
URI / URL / URN 정의
- 통합 자원 식별자(Uniform Resource Identifier)는 인터넷에 있는 자원을 어디에 있는지 자원 자체를 식별하는 방법이다.
- Uniform : 리소스 식별하는 통일된 방식
- Resource : 자원, URI로 식별할 수 있는 모든 것
- Identifier : 다른 항목과 구분하는데 필요한 정보
- URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.
- URI의 하위개념으로 URL, URN 이 있다
- 파일식별자(Uniform Resource Locator)는 네트워크 상에서 자원이 어디 있는지 위치를 알려주기 위한 규약이다.
- 컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조이다.
- 흔히 우리는 URL을 웹 사이트 주소로만 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타내는 표기법이다.
- 그리고 해당 주소에 접속하려면 URL에 맞는 프로토콜(http, sftp, smp ..등)을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.
URL 문법
scheme://[userinfo@]host[:port][/path][?query][#fragment]
- 프로토콜(https)
- 호스트명(www.google.com)
- 포트번호
- 패스(/search)
- 쿼리 파라미터(q=hello&hl=ko)
scheme
userinfo@
- URL에 사용자정보를 포함해서 인증
- 거의 사용하지 않음
host
- 호스트명
- 도메인명 또는 IP주소를 직접 사용가능
PORT
path
- 리소스 경로(path), 계층적 구조
ex)
/home/file.jpg
/members
/members/100
query
- key, value 형태
- 웹서버에 제공하는 파라미터, 문자 형태
- ?로 시작, &로 추가가능
ex) ?keyA=valueB&keyB=valueA
- query parameter, query string등으로 불린다
fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 아님
- 웹문서 해시태크라고도 불림
URL 분석
https://www.google.com/search?q=hello&hl=ko
q : 검색 쿼리
hl : 언어
- 통합 자원 이름(Uniform Resource Name)은 urn:scheme 을 사용하는 URI를 위한 역사적인 이름이다.
- URL이 리소스가 있는 위치를 지정한다면, URN은 리소스에 이름을 부여하는 것이다.
- 하지만 리소스가 이름에 매핑되어 있어야 하기 때문에 이름으로 부여하면 거의 찾기가 힘들다. 그래서 대부분 URL만 쓴다.
참고
https://www.inflearn.com/course/lecture?courseSlug=http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC&unitId=61357&tab=note
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-URL-URI-%EC%B0%A8%EC%9D%B4#uri_/_url_/_urn_%EC%A0%95%EC%9D%98
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-URL-%EA%B5%AC%EC%84%B1-%EC%9A%94%EC%86%8C-%EC%9A%94%EC%B2%AD-%ED%9D%90%EB%A6%84-%EC%A0%95%EB%A6%AC