본문 바로가기

Programming/기초지식

URI 그리고 URL

반응형

URI(Uniform Resource Identifier)

'통합 리소스 식별자'(라고 해도 될까?)의 약어인 URI는 인터넷 환경에서 특정 리소스를 지칭하는 문자 형태의 식별자다.

URI는 두 형태로 나뉘는데, URL(Uniform Resource Locator), URN(Uniform Resource Number)이 그것이다.

 

  • URL : 위치로 리소스를 식별한다.
  • URN : 이름으로 리소스를 식별한다.

https://www.javatpoint.com/uri-vs-url

 

URI의 세부구조

[scheme]://[authority]:[port]/[path][?query][#fragment]

 

scheme

https://
  • 스킴 혹은 프로토콜(protocol)로 명명된다. 웹에서 페이지 로드, 메일 및 파일 전송과 같은 특정 임무를 수행하려면 어떤 통신규약을 따라야 하는지를 명시한다.
  • http/https, malito, ftp 등이 대표적이다.

 

authority

www.naver.com
  • 도메인 이름 혹은 권한.

 

port

localhost:3000 에서 3000이 port다.
  • 웹 서버 상의 리소스에 접근하는데 사용되는 기술적인 문(gate).
  • 리소스에 접근하기 위한 권한을 얻기 위해 웹 서버가 HTTP 프로토콜의 표준 포트(HTTP는 80, HTTPS는 443)를 사용하는 경우 일반적으로 생략된다. 이 외의 경우 포트 입력은 필수.

 

path

  • 웹 서버 상의 리소스 경로.
  • 물리적인 실제 위치라기 보다는 웹 서버에 의해 표현되는 추상적인 위치.
  • ex) www.google.com/main/news/tech

 

query

  • 웹 서버에 제공되는 추가적인 파라미터.
  • path와 query는 ? 기호로 구분한다.
  • 파라미터는 키-값 한 쌍으로 구성되며, & 기호로 각 파라미터를 구분한다.
  • ex) www.google.com/main/news/tech?category=IT&page=1

 

fragment

  • 사용 여부는 필수가 아니다.(optional)
  • 해시 기호(#)로 시작되며, 리소스 내의 '북마크' 지점에 위치한 컨텐츠를 호출한다.
  • 북마크 이름은 HTML 태그의 id 속성값을 따른다.

아래 그림은 https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web 이라는 URL로 접속한 이미지다. URL 끝에 '#프래그먼트'를 추가하면 프래그먼트 설명 섹션으로 스크롤이 이동된다.

(https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web#프래그먼트)

그 이유는 오른쪽 개발자도구에서 확인 할 수 있듯이 <a> 태그에 id 속성값으로 '프래그먼트'가 입력되었기 때문이다.

 


 

URL(Uniform Resource Locator)

  • URI의 가장 일반적인 형식.
  • 앞서 언급 했듯이, URL은 리소스의 고유한 위치를 나타낸다.
  • URL은 HTTL, HTTPS, FTP와 같은 프로토콜과 함께 붙어서 사용된다.
  • 이 URL에 URN이 포함된 것이 URI다. 따라서 URI 안에 URL이 있다.

https://www.javatpoint.com/uri-vs-url

 


 

URN(Uniform Resource Number)

  • 이름으로 리소스를 식별하는 URI.

 

아래 코드는 조지 오웰의 책 1984를 나타내는 URN이라고 한다.

urn:isbn:9780141036144

 


 

URI와 URL의 차이점

  • URI는 식별자의 역할을, URL은 위치를 나타내는 역할에 중점을 둔다. 따라서 URL은 URI 안에서 '리소스의 위치'를 나타내는 한정적인 역할을 수행하며, URI는 보다 넓은 의미에서 'URL + 리소스 식별자'의 역할도 수행한다.

 

1) https://www.google.com URI( O ) / URL( O )
2) https://www.google.com/mypage/image/cokezero.jpg URI( O ) / URL( O )
3) https://www.google.com/news/tech/?id=123 URI( O ) / URL( X )
4) https://www.google.com/123 URI( O ) / URL( X )

 

  1. https://www.google.com 라는 서버를 나타낸다.(식별자이면서 위치를 나타낸다) URI, URL 둘 다 만족.
  2. https://www.google.com/mypage/image/cokezero.jpg cokezero.jpg 리소스의 위치를 정확히 명시하고 있다. URL, URL 둘 다 만족.
  3. https://www.google.com/news/tech/ 까지 URL로 인정. 이후의 쿼리 ?id=123은 해당 리소스의 고유 식별자이기 때문에 URL은 될 수 없고 URI라고 할 수 있다.
  4. 리소스 위치를 나타내는 URL 이후 리소스 고유 식별자 123이 추가되었다. URL은 될 수 없고 URI라고 할 수 있다.

 


 

쉽지 않다.


참고

https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web#urls_%EA%B7%B8%EB%A6%AC%EA%B3%A0_urns

 

웹 리소스 식별 - HTTP | MDN

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

developer.mozilla.org

https://www.javatpoint.com/uri-vs-url

 

URI vs URL | Difference between URI and URL - javatpoint

URI vs URL | Difference between URI and URL with Tutorial, features, types of computer network, components, Intranet, Uses Of Computer Network, Hub, Software and Hardware, etc.

www.javatpoint.com

https://medium.com/@js230023/url-%EA%B3%BC-uri%EC%9D%98-%EC%B0%A8%EC%9D%B4-154d70814d2a

 

URL 과 URI의 차이

URL /URI

medium.com

반응형