- Published On
URL vs URN vs URI: 인터넷 식별자의 이해
웹 상에서 정보를 찾고 상호작용하는 과정에서 자주 듣게 되는 용어들 중에 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은 다음과 같이 생겼을 수 있습니다:
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#section2 | urn: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 실행이 완료되면, 최종적으로 사용자에게 웹 페이지가 표시됩니다. |
연관된 포스트 구경가기