Home URI와 URL 그리고 URN
Post
Cancel

URI와 URL 그리고 URN

URI(Uniform Resource Identifier)

우리는 인터넷상에 수많은 데이터 자원을 검색한다. 네이버나 구글에서 단어를 검색하거나 유튜브에서 내가 좋아하는 유튜버의 영상을 찾아 볼수도 있다. 또는 음악을 찾아 들어볼 수도 있다.

그런데 여기서 우리는 어떻게 그 수많은 영상과 음악들을 식별할 수 있을까? 다시말해 유튜브 서버에 접속 한뒤 수많은 영상중 내가 원하는 영상은 어떻게 찾을 수 있을까?

결론부터 말하면 이때 사용하는 것이 URI 이다. URI는 인터넷에서 자원을 식별하기 위한 식별자를 말한다. 그리고 URI는 locator, name 또는 둘다 추가로 분류 될 수 있다.

자원의 식별

우리는 서로 다른 것을 구분하고 식별하기 위해 어떤 수단을 사용한다. 그리고 이런 수단을 식별자라 부른다.

이름 (Name)

세상에는 수많은 사람들이 존재한다. 과연 그들과 나를 어떻게 구분할 수 있을까?

우리는 모두 자신의 이름을 가지고 있다. 그리고 우리는 이름을 통해 서로를 구분하여 부른다. (물론 이름이 같은 사람도 있지만 중요한 것은 이름으로 우리는 서로를 구분하고 식별한다는 사실이다.)

주소 (위치 - Locator)

다른 예시를 들어보면 우리는 집마다 주소를 부여하고 이러한 주소로 집들을 구분한다. 그렇기 때문에 수많은 집들 중 내집을 식별할 수 있는 것이다.

URL과 URN

정리해보면 인터넷 상에서 수많은 데이터를 식별하기 위해서 이름이나 위치를 통해 자원을 식별한다. 그리고 이러한 식별 주소를 URL(Uniform Resource Locator)URN(Uniform Resource Name)이라 한다.

  • URL: 리소스가 있는 위치를 지정
  • URN: 리소스에 이름을 부여

크게 두가지 방법으로 자원을 식별하는데 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않아 URN은 잘 사용하지 않는다. 현재는 대부분 URL을 사용하고 있으므로 URL과 URI를 같은 의미로 사용하는 경우가 많다.

URL 전체 문법

1
2
3
4
5
6
7
8
9
10
scheme://[userinfo@]host[:port][/path][?query][#fragment]

예시
https://www.google.com:443/search?q=hello&hl=ko

  프로토콜: https
  호스트명: www.google.com
  포트번호: 443
  경로: /search
  쿼리 파라미터: q=hello&hl=ko
  • scheme: 주로 프로토콜 사용
  • userinfo: URL에 사용자 정보를 포함해서 인증, 거의 사용하지 않음
  • host: 도메인명 또는 IP 주소 사용
  • host: 도메인명 또는 IP 주소 사용
  • port: 접속 포트 정보, 일반적으로 생략하고 생략 시 http는 80, https는 443 port를 사용
  • path: 리소스 경로, 계층적 구조
  • query: key=value의 형태로 ?로 시작하고, &로 추가한다.
  • fragment: html 내부 북마크 등에 사용하고 서버로 전송하는 정보가 아님

참고

This post is licensed under CC BY 4.0 by the author.

DNS

HTTP 메시지

Comments powered by Disqus.