웹/HTTP

URI, URL, URN에 대해서

ahgle 2022. 11. 17. 13:32
728x90
반응형

URL은 인터넷 주소를 의미하는 것으로 알고 있는데, URI는 무엇일까

URL이랑 비슷한 것 같기도한데, 정확한 의미를 알지 못했어서 각 용어의 차이에 대해 이번 기회에 정리해보고자 한다.

 

1. URI(Uniform Resource Identifier)

통합 자원 식별자. 인터넷에 있는 자원을 나타내는 '유일한' 주소이다. 유일하다는 것은 단 하나만 존재한다는 것이다.

URI의 존재는 인터넷에서 요구되는 기본 조건으로써, 인터넷 프로토콜에 항상 붙어다니며 URI의 하위 개념으로 URL, URN이 있다.

 

표현 방법

 scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

 

예시를 보자.

https://wowy0211.tistory.com/

https라는 웹 프로토콜을 이용하여, wowy0211.tistory.com/ 라는 유일한 식별자를 통해 해당 사이트의 자원을 가져온다.

 

앞서 말했듯이, URI는 프로토콜에 항상 붙어다니는 유일한 주소라고 했다. wowy0211.tistory.com이 HTTP프로토콜에 붙어있는 URI가 되는 것이다.

 

두 번째 URI 예시를 보자.

https://wowy0211.tistory.com/26

역시 HTTP프로토콜에 붙어있는 wowy0211.tistory.com/26이 URI이다. URI는 유일한 자원을 나타내므로, wowy0211.tisytory.com 과 wowy0211.tistory.com/26의 자원은 각각 다르다.

각 URI에 따른 다른 페이지를 나타내는 것이다. 

 

유일한 식별자라는 표현을 이런식으로 이해하면 될 것 같다.

 

설명을 위한 임의의 주소이며, 해당 주소를 분석해보자.

  • http :프로토콜
  • www.example.com  : 도메인 주소
  • 80 : 포트번호
  • /test/test.php : 접근하고자 하는 파일의 경로
  • ?id=123 : 파라미터 (리소스에 접근할 때 필요한 데이터. '?' 다음에 오며 보통 Key,Value로 구분된다. 파라미턱 ㅏ여러개일 땐 &로 구분한다)
  • post : Anchor (추가적인 데이터로, 서버 단에서 다루지 않고 보통 웹브라우저 단에서 다룬다)

 

2. URL(Uniform Resource Locator)

URL은 Uniform Resource Locator의 약어이다. Locator라는 말 그대로, 자원의 '위치'를 나타낸다.  또한 어떻게 접근해야 하는 지(어떤 프로토콜을 사용해야 하는 지)도 필요하다. 

→ 도메인에 프로토콜이 있다면 그건, URI면서 URL이 되는 것! 

특정 시점의 위치를 알려주는 역할을 하므로, 리소스(찾고자 하는 내용)의 위치가 옮겨지면 해당 url은 쓸모가 없어진다.

 

 

3. URN(Uniform Resource Name)

URN은 Uniform Resource Name의 약어이다. URL의 단점을 극복하기 위해 등장했다고 하며, 독립적인 자원 지시자라고 한다.   URL은 리소스 위치가 이동하면 더 이상 쓸모가 없어지지만, URN은 고유하기 때문에 리소스의 위치 이동에 관계없이 항상 사용이 가능하다!

따라서 리소스가 그 이름을 변하지 않게 유지하는 한, 여러 종류의 네트워크 접속 프로토콜로 접근해도 문제가 없다.

 

URL + URN = URI 이라고 생각!

 

아래 아파치 웹서버의 웹로그의 URI은 어떻게 될까? (아이피 및 주소는 모두 임의 작성하였습니다)

볼드 처리한 부분 전체가 URI가 될 것이다.

http://test.co.kr/kor/?ckattempt=1

 

153.1.1.1 - - [17/Nov/2022:17:05:42 +0900] "GET /kor/test/js/test.js?ver=20221118 HTTP/1.1" 200 55626 "http://test.co.kr/kor/?ckattempt=1" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36" 0 63356

 

이제 웹서버의 로그를 보고 URI를 물어본다면,, 그냥 우리가 아는 url의 풀 주소라고 생각하자

 

참고 링크

https://dkswnkk.tistory.com/504

https://pgnt.tistory.com/63

 

 

The record makes me strong.

728x90

' > HTTP' 카테고리의 다른 글

HTTP 헤더에 대해서  (0) 2022.09.20