URI (Uniform Resource Identifier)
리소스를 식별하기 위한 표준화된 방법을 제공하는 개념이다.
- Uniform (통일된) : 리소스를 식별하는 통일된 방식
- Resource (리소스) : 자원, URI로 식별할 수 있는 모든 것 (제한 없음)
- Identifier (식별자) : 다른 항목과 구분하는 데 필요한 정보
URI는 일반적으로 두 가지 유형으로 나뉜다.
URL (Uniform Resource Locator)
리소스의 위치를 식별하는 데 사용된다.
foo://example.com:8042/over/there?=name=ferret#nose
\ /\ /\ /\ /\ /
|  ̄ ̄ ̄ | ̄ ̄ ̄  ̄ |  ̄  ̄ ̄| ̄ ̄ |
scheme authority path query fragment
https://www.google.com:443/search?q=hello@hl=ko
scheme://[userinfo@]host[:port][/path][?query][#fragment]
| scheme(스키마) | 주로 프로토콜에 사용되며, 리소스에 어떤 방식으로 접근할지를 지정한다. |
| userinfo | URL에 사용자정보를 포함해서 쓸 수 있으나, 거의 사용하지 않는다. |
| host | 호스트명이 들어가며, 도메인명 또는 IP 주소를 직접 사용할 수 있습니다. |
| port | 접속 포트다. 포트는 일반적으로 생략 가능하며, 생략시 http는 80, https는 443번 포트다. |
| path | 리소스 경로이며 계층적 구조로 되어있다. (ex. /home/file1.jpg) |
| query | key=value 형태로 들어가며, ?로 시작, &로 추가 가능하다. (ex. ?keyA=valueA&keyB=valueB) query parameter, query string 등으로 불린다. 웹서버에 제공하는 파라미터이며, 문자 형태다. |
| fragment | html 내부 북마크 등에 사용되며, 서버에 전송하는 정보가 아니다. |
URN (Uniform Resource Name)
리소스의 이름을 식별하는 데 사용된다.
urn:example:animal:ferret:nose
\/\ /
|  ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄
scheme path
위치는 변할 수 있지만, 이름은 변하지 않으므로 URN 이름만으로 실제 리소스를 찾을 수 있는 방법은 보편화되지 않았다.
출처 : 인프런 모든 개발자를 위한 HTTP 웹 기본 지식 / 김영한, https://www.ietf.org/rfc/rfc3986.txt
'💻 CS > CS' 카테고리의 다른 글
| CS : URI와 웹 브라우저 요청 흐름 (2) URL을 통한 웹 브라우저 요청 흐름 (0) | 2023.09.11 |
|---|---|
| CS : 인터넷 네트워크 (3) PORT, DNS (0) | 2023.09.11 |
| CS : 인터넷 네트워크 (2) IP, TCP, UDP (0) | 2023.09.11 |
| CS : 인터넷 네트워크 (1) 인터넷 프로토콜 계층 (0) | 2023.09.11 |