URI, URL, URN 개념 정리
URI (Uniform Resource Identifier)
- URI는 리소스를 식별하는 통합된 방법이다.
- URI는 두 가지 주요 유형으로 나뉜다:
- URL (Uniform Resource Locator): 리소스가 있는 위치를 지정
- URN (Uniform Resource Name): 리소스에 이름을 부여
URI의 구성 요소
- UNIFORM: 리소스를 식별하는 통일된 방식
- RESOURCE: URI로 식별할 수 있는 모든 자원 (제한 없음)
- IDENTIFIER: 다른 항목과 구분하는데 필요한 정보
URL (Uniform Resource Locator)
- URL은 리소스 로케이터로, 리소스의 위치를 지정한다.
- 구성:
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- 예시: https://www.google.com:443/search?q=hello&hl=ko
URL 구성 요소
- Scheme
- 리소스에 접근하는 프로토콜을 정의 (예: http, https, ftp 등)
- 예시: https://
- http는 기본 포트 80을 사용하고, https는 443을 사용한다.
- Userinfo
- URL에 사용자 정보를 포함해 인증을 제공할 수 있다.
- 예시: http://username:password@host
- 그러나 거의 사용되지 않는다.
- Host
- 도메인명 또는 IP 주소를 사용하여 호스트를 정의한다.
- 예시: www.google.com
- Port
- 접속 포트를 지정한다.
- 예시: :443 (생략 가능: https는 기본적으로 포트 443을 사용)
- Path
- 리소스의 경로를 정의하며, 계층적 구조를 따른다.
- 예시: /search, /members/100
- Query
- 쿼리 파라미터는 key=value 형태로 데이터를 전달한다.
- 예시: ?q=hello&hl=ko
- 여러 개의 파라미터는 &로 구분한다.
- Fragment
- 리소스 내에서 북마크처럼 특정 부분으로 이동하는 데 사용된다.
- 예시: #getting-started
- 서버에 전송되는 정보가 아니며, 클라이언트 측에서만 사용된다.
URN (Uniform Resource Name)
- URN은 리소스에 이름을 부여한다.
- URL과 달리, 리소스의 위치를 지정하지 않고, 그 이름만으로 리소스를 식별한다.
- URN의 예시: urn:isbn:89607773331 (책의 ISBN 번호처럼 특정 리소스를 유일하게 식별)
- 차이점: URN은 위치가 아니라 이름을 기반으로 리소스를 식별하기 때문에 위치가 변해도 이름은 변하지 않는다.
댓글