Published on

URL vs URN vs URI: 인터넷 식별자의 이해

Authors
  • avatar
    Name
    Inhwan Cho
    Twitter

웹 상에서 정보를 찾고 상호작용하는 과정에서 자주 듣게 되는 용어들 중에 URL, URN, 그리고 URI가 있습니다.

이 세 가지 용어는 모두 인터넷 상의 자원을 식별하기 위해 사용되지만, 그 의미와 용도에는 중요한 차이점들이 있습니다.

URI(Uniform Resource Identifier)

URI는 'Uniform Resource Identifier'의 약자로, 인터넷 상의 자원을 고유하게 식별하거나 위치를 지정하는 데 사용되는 문자열의 일반적인 형태입니다.

URI는 자원의 이름(name)이나 그 위치(location)을 나타낼 수 있으며, 이는 URL과 URN으로 세분화됩니다.

URL(Uniform Resource Locator)

URL, 즉 'Uniform Resource Locator'는 자원이 실제로 존재하는 위치를 나타냅니다.

프로토콜(http, https, ftp 등), 서버의 주소, 그리고 해당 서버에서의 자원의 경로를 포함하여, 해당 자원에 접근하기 위한 구체적인 주소를 제공합니다.

예를 들어, 웹 페이지의 URL은 다음과 같이 생겼을 수 있습니다:

html
https://www.example.com/index.html

여기서 https는 프로토콜을, www.example.com은 서버의 주소를, /index.html은 서버 내 자원의 경로를 나타냅니다.

URN(Uniform Resource Name)

URN, 즉 'Uniform Resource Name'은 자원의 위치가 아닌, 자원의 이름으로 식별됩니다.

URN은 자원이 옮겨지거나 이름이 변경되더라도 해당 자원을 지속적으로 식별할 수 있는 방법을 제공합니다.

예를 들어, 국제 표준 도서 번호(ISBN)는 책이라는 자원에 대한 URN으로 사용될 수 있습니다.

예시: ISBN을 이용한 URN

urn:isbn:0451450523

이 예시에서는 "The Great Hunt"라는 책에 대한 국제 표준 도서 번호(ISBN)가 URN으로 사용되고 있습니다.

URL, URN, 그리고 URI의 비교

구분URL (Uniform Resource Locator)URN (Uniform Resource Name)URI (Uniform Resource Identifier)
정의인터넷 상의 자원이 위치하는 방법을 나타내는 주소입니다.자원을 고유하게 이름을 부여하여 위치와 무관하게 식별할 수 있는 식별자입니다.자원을 식별하는 통합된 방식으로, URL과 URN을 포함하는 더 넓은 개념입니다.
목적자원이 어디에 있는지, 그리고 그 자원에 어떻게 접근할 수 있는지를 나타냅니다.자원의 위치에 상관없이 그 자원 자체의 고유한 이름을 제공합니다.자원을 식별하거나 이름을 지정하는 데 사용됩니다.
형식프로토콜://도메인:포트/경로?쿼리스트링#프래그먼트urn:네임스페이스식별자:자원명URL과 URN 둘 다 포함할 수 있는 형식입니다.
예시http://www.example.com/nnn?id=123#section2urn:isbn:0451450523 (어떤 책의 ISBN을 나타냄)(URL 예시): http://www.example.com/nnn
(URN 예시): urn:isbn:0451450523

요약

  • URL은 자원의 위치를 나타내며, 인터넷에서 해당 자원을 찾기 위한 구체적인 경로를 제공합니다.

  • URN은 자원의 고유 이름을 나타내며, 자원의 위치나 방법과는 독립적입니다. 예를 들어, ISBN(국제 표준 도서 번호)는 특정 책에 대한 URN으로 사용될 수 있습니다.

  • URI는 자원을 식별하는 데 사용되는 보다 일반적인 용어로, URL과 URN 모두 포함할 수 있습니다. 즉, 모든 URL과 URN은 URI이지만, 모든 URI가 URL이나 URN은 아닙니다.

번외 : 주소창에 URL을 입력하면 벌어지는 일

단계설명
1. URL 해석브라우저는 URL을 해석하여 프로토콜, 호스트 이름, 경로 등을 파악합니다.
2. DNS 조회호스트 이름(도메인)을 IP 주소로 변환하기 위해 DNS(Domain Name System) 조회를 수행합니다.
3. TCP 연결서버의 IP 주소와 포트 번호(HTTPS의 경우 기본적으로 443)를 사용하여 TCP 연결을 생성합니다.
4. HTTP/HTTPS 요청TCP 연결을 통해 서버에 HTTP 또는 HTTPS 요청을 전송합니다. 요청에는 사용자가 요청한 리소스의 경로, 메소드 등이 포함됩니다.
5. 서버 처리서버는 요청을 받아 처리한 후, 요청받은 리소스에 대한 응답(HTML, CSS, JS 파일 등)을 클라이언트에게 전송합니다.
6. 응답 및 렌더링브라우저는 서버로부터 받은 응답을 해석하고, HTML, CSS를 파싱하여 DOM(Document Object Model) 트리를 구축합니다.
7. 자바스크립트 처리HTML 내의 <script> 태그나 외부 스크립트 파일들이 실행됩니다. JS에 의해 DOM이 조작될 수 있습니다.
8. 리소스 다운로드HTML에서 참조하는 이미지, CSS, JS 파일 등 추가 리소스를 다운로드합니다.
9. 페이지 렌더링완료 모든 리소스가 로드되고, JS 실행이 완료되면, 최종적으로 사용자에게 웹 페이지가 표시됩니다.