PracticeEveryday

URI, URL, URN? 본문

정리/CS

URI, URL, URN?

kimddakki 2022. 5. 25. 14:24
URI Uniform Resource Identifier ( 통합 자원 식별자 )

 - 은행계좌는 계좌번호, 버스는 노선번호, 사람은 주민등록번호로 구분되듯 웹 서버의 리소스 또한 각자의

   이름이 있다. ( 클라이언트가 요청할 때 찾아야 되니까 id 같은 고유한 식별자가 필요한 것이다!! )

   이 때 서버 리소스 이름 ( 식별자 )를 Uniform Resource Identifier ( 통합 자원 식별자 ), URI라고 부른다.

   URI는 두 종류가 있는데 이는 URL과 URN 이다. 즉 URL이 URI에 포함되는 개념이다!

 

 Resoure 리소스 란?

 - 웹 서버는 웹 리소스를 관리하고 제공한다. 어떤 종류의 컨텐츠로 리소스가 될 수 있다.

   리소스는 텍스트 파일, HTML 파일, 워드, JPEG, 이미지 파일 등의 정적 파일이 될 수 도 있고

   주식 거래, 인터넷 검색 엔진 등 요청에 따라 콘텐츠를 생산하는 프로그램도 모두 리소스 (동적 콘텐츠 리소스)가

   될 수 있다.

 

URL ( Uniform Resource Locator ) URI ( Unifrom Resource Identifier )

 - URL은 자원이 실제로 존재하는 위치를 가리키며 URI는 자원의 위치 뿐 아니라 자원에 대한 고유 식별자로서

   URL의 의미를 포함한다.

우리가 인터넷 환경에서 자원을 식별하기 위해 사용하는 방법에는 Path Variable 방식과 Query Parameter 방식이 있다.

Path Variable 방식은 특정한 자원을 보여줘야 할 때 사용한다.
/user/1
/user/2
/user/3

Query Parameter 방식은 자원들을 필터링 해서 보여줄 때 사용한다.
/user?job=student
/user?job=student&age=10

※ URL과 URI의 차이점

1. http://torang.co.kr/index 

 - 위의 예시에는 torang.co.kr 에서 index라는 경로를 나타내고 있다.

   서버에서는 해당 라우팅에 대한 알맞은 자원을 전송해 줄 것이며 이는 자원의 실제 위치이므로 URL이다.

 

2. http://torang.co.kr/user/107 

 - 위의 예시에서는 torang.co.kr 에서 107의 ID 값을 가지고 있는 자원을 식별하고 있다.

   따라서 http://torang.co.kr/user/ 까지는 자원의 실제 위치이기 때문에 URI임과 동시에 URL이며 끝의 /107은 

   식별자 이므로 http://torang.co.kr/user/107은 은 URL을 포함한 URI라고 볼 수 있다.

 

3. http://torang.co.kr/user?id=107

 - 2번의 예시와 마찬가지로 http://torang.co.kr/user까지는 까지는 자원의 실제 위치를 나타내기 때문에 URL이라고

  할 수 있으며 뒤의 쿼리스트링 시별자 ( ?id=107 )를 폼함하여 URI라고 볼 수 있다.

 


Uniform Resource Identifiers ( URIs ) 구문

1. 스킴 혹은 프로토콜

 

 - http://는 프로토콜이다. 브라우저가 사용하는 프로토콜을 타나낸다. 일반적으로 http 프로토콜 이거나 보안이 적용된

   https일 것이다. 웹은 이들 중 하나를 반드시 필요로 하지만, 브라우저들은 mailto: ( 메일 클라이언트를 열기위한 

   프로토콜 ) 혹은 파일 전송을 다루기 위한 ftp: 와 같은 프로토콜도 처리하는 방법을 알고 있어 다양한 프로토콜을

   만날 수도 있다.

 

2. 도메인 이름 ( Authority: 권위자 권위 )

 - www.example.com  은 네임스페이스를 관리하는 도메인 이름 혹은 권한이다. 그것은 어떤 웹 서버가 요청을 받게

   될지를 나타낸다. ip address를 직접 사용할 수 있지만 웹에서 그리 자주 사용되지는 않는다.

 

3. 포트

 - 이 예제에서 :80 는 포트를 말한다.

   그것은 웹 서버 상의 리소스에 접근하는데 사용되는 기술적인 " 문 ( gate ) "을 나타낸다.

   리소스에 접근하기 위한 권한을 얻기 위해 웹 서버가 HTTP 프로토콜의 표준 포트(HTTP는 80, HTTPS는 443)를

   사용하는 경우 일반적으로 생략된다. 그게 아니라면 포트 입력은 필수입니다.

 

4. 경로

 - /path/to/myfile.html은 웹 서버 상의 리소스 경로이다. 초기 웹에서, 이와 같은 경로는 웹 서버 상에 있는 파일의

   실제 위치를 나타냈었다. 오늘날에는, 대부분 물리적인 실제 위치를 사용하지 않고 웹 서버에 의해 다뤄지는 추상화를

   사용한다.

 

5. 쿼리

 - ?key1=value1&key2=value2 는 웹 서버에게 제공되는 추가적인 파라메터이다. 이 파라메터들은 & 심볼로 구분되는

   키 / 값 쌍의 목록이다. 웹 서버는 리소스를 사용자에게 반환하기 이전에 추가적인 작업을 하기 위해 이 파라메터를

   하용 할 수 있다. 각각의 웹 서버는 파라메터들을 따르는 자신만의 규칙을 가지며, 특정 웹 서버가 파라메터들을

   다루는 방식을 알기 위한 신뢰할 수 있는 유일한 방법은 웹 서버 소유자에게 요청하는 것이다.

 

6. 프래그먼트

 - #SomwhereInTheDocument 는 리소스 자체의 다른 부분을 가리키는 앵커이다.

   앵커는 리소스 내에서의 " 북마크 "의 한 종류를 나타내며, 브라우저에게 그런 " 북마크 된 " 지점에서 위치한

   컨텐츠를 보여주기 위한 방법을 제공한다.

 - HTML 문서 상에서, 브라우저는 앵커가 정위된 지점으로 스크롤 될 것이다. 비디오 혹은 오디오 문서에서

   브라우저는 앵커가 나타내는 시점으로 이동하려고 할 것이다. 프래그먼트 식별자로 알려져 있기도한 # 뒤의 부분은

   요청과 함께 서버에 전달되지 않는 다는 것을 알아두어야 한다!


 

 

웹 리소스 식별 - HTTP | MDN

HTTP 요청 대상을 "리소스"라고 부르는데, 그에 대한 본질을 이 이상으로 정의할 수 없습니다; 그것은 문서, 사진 또는 다른 어떤 것이든 될 수 있습니다. 각 리소스는 리소스 식별을 위해 HTTP

developer.mozilla.org

 

 

URL과 URI의 차이점

RESTFul API에 대해서 공부를 하다보면 URI라는 표현을 종종 사용한다. 언뜻보면 URL이랑 차이점이 없어보이지만 세세하게 따지고들면 엄연한 차이가 있다. 결론부터 말하면 URI는 URL의 의미를 품고

velog.io

 

 

'정리 > CS' 카테고리의 다른 글

ISP  (0) 2022.05.25
DNS  (0) 2022.05.25
REST API  (0) 2022.05.25
메모리 관리  (0) 2022.05.24
프로그램 실행 과정  (0) 2022.05.16
Comments