본문 바로가기

CS ﹒ Algorithm/(구)Network

네트워크 (2) URI, URL, URN은 각각 무엇이고 어떤 차이가 있는가

W3C의 URI 벤다이어그램

 

 

 

1. URI ?

 

 

 

URI(Uniform Resource Identifier)는 통합 자원 식별자로써 인터넷의 모든 자원을 식별할 수 있는 통일된 방식을 의미한다.

Uniform : 식별하는 통일된 방식.

Resource : 데이터, 이미지, 텍스트 등 URI로 식별할 수 있는 모든 자원.

Identifier : 다른 항목과 구별하는데 필요한 정보.

 

위의 그림에서 나타나듯 URI는 URL, URN 그리고 다른 모든 것들을 포함하는 가장 포과적인 단위이다.

URI는 인터넷에서 요구되는 기본 조건 중 하나로써 항상 인터넷 프로토콜과 붙어다닌다.

 

 

 

2. URL (Uniformed resource Locator)?

 

우선 우리에게 가장 익숙한 URL부터 알아보자.

 

URL(Uniform resource Locator)은 통합 자원 지시자로써 특정 서버의 리소스에 대한 구체적인 위치를 서술한다.

그 형태는 아래와 같다.

 

 

 

 

 

1. URL scheme(스킴)

보통 프로토콜이라고 불리며 URL의 시작부터 콜론(':') 전 까지의 표현이다.

어떤 방식으로 리소스에 접근할 것인지에 대한 규칙이며 http, https, ftp, SIP등이 있다.

요즘은 대부분 https가 많이 사용되는데, 이것은 http에 secure가 결합된 것으로 http의 보안 강화 버전이다.

 

2. userInfo

사용자의 아이디와 비밀번호를 userinfo로 부른다.

거의 사용되지 않으며 위의 예시에도 제외되어 있다.

접속을 위해 아이디와 비밀번호를 요구하는 특정 서버에서 사용될 수 있다.

ex) https://myname:1234@www.betterweb.com/ 

 

3. host & 포트

도메인 명, 포트로 구성되며 포트는 생략 가능하다.

http 프로토콜에서 포트 번호를 명시하지 않으면 80 포트를 기본으로 사용하며 https는 443 포트를 주로 사용한다.

 

4. path

리소스가 존재하는 경로를 나타내며 계층적 구조로 구성된다. ( ex photo/100/detail )

 

5. query string || query parameter

클라이언트가 자원을 GET 방식으로 요청할 때, 필요한 데이터를 함께 넘겨줄 목적으로 사용한다.

'?'로 시작하고 파라미터가 여러개일 경우 '&'로 구분한다.

key와 value의 형태로 이루어져 있다.

 

6. frgment

이것은 해당 html 내부에서 사용되는 것으로 해당 페이지의 어느 부분을 가르키는지를 의미한다.

마치 책갈피 같은 기능으로 서버에서 처리하는 부분은 아니다.

 

 

 

 

3. URN (Uniformed Resource Name) ?

 

 

세번째가 URN의 예시이다.

 

URN은 URL의 한계를 극복하기 위해 만들어진 것으로써 리소스의 주소를 바탕으로 찾는 것이 아닌 "리소스 그 자체를" 찾아낸다.

예를 들어 어느날 갑자기 구글의 주소가 google.co.kr이 아닌 gooogle.co.kr로 바뀌었다면?

Redirection 처리를 해주지 않는다면 사용자는 더 이상 구글에 접속할 수 없을 것이다.

그러나 URN은 리소스의 이름 그 자체를 탐색하는 것이기 때문에 위치를 찾아낼 수 있다.

쉽게 설명하자면 URL은 내가 살고 있는 주소를 가르키는 것이고, URI는 나라는 사람 자체를 가르키고 있다는 것이다.

 

언뜻 보면 꽤나 쓸만해 보이는 URN이지만 사실상 사용되지 않고 있다.

아마도 아직도 신주소를 불편해하고 구주소를 편하다고 생각하는 사람들이 많은 이유와 일맥상통하지 않을까? (내 이야기)

한 번 고착화된 것은 쉽게 바뀔 수 없는 것 같다.