웹/배경지식

URI, URL이란?

한땀코딩 2020. 8. 30. 23:25

웹 사이트의 이름?

우리는 평소에도 큰 고민 없이 인터넷에 소위 말하는 '주소'를 이용하여 접근하고 있다. 모든 서버나 서비스는 고유한 주소를 가지고 있는데, 이는 보통 숫자로 된 ip 주소로 구성되는데, 이걸 인간이 이해하기 쉽게끔 문자로 표현하고 이를 연결 지어주는 것이 dns 서버의 역할이라 할 수 있다.

그래서 그런지, 우리는 꼭 개발자가 아니더라도 url이라는 표현을 일상적으로 사용하는데, 일전에 회사에서 URI라는 단어를 처음 접하고 굉장히 당황했던 기억이 난다. 선배들이나 동료들에게 물어봐도 그냥 url이랑 비슷한 거예요, 라고만 대답이 돌아왔는데 최근에 다시 접하게 되어 기회가 닿은 김에 정리를 해보았다.

URI vs URL vs URN

  • URI: Uniform Resource Identifier. 이름 그대로, 특정 자료가 어디에 있는지를 알려주는 무언가를 통칭한다. 위의 그림에서도 보이듯이 우리가 흔히 사이트의 주소라고 부르는 url, 어떠한 링크의 고유한 이름같은 urn이 모두 URI의 부분적인 것들이다.
  • URL: Uniform Resource Locator. 어떤 방식으로 어디에 접근해야 하는지를 명시한다. 예를 들면 http, ftp와 같은 protocol이 포함된다.
  • URN: Uniform Resource Name. url 처럼 접근 방법에 대한 명시 없이 일종의 이름처럼 쓰인다고 한다. 일반적인 표기는 아닌 것으로 보인다. 즉, Location에 대해서는 알 수가 없다고 한다.

URI의 세부 구성 요소

인터넷은 수많은 프로토콜로 구성된 공간인 만큼 이와 관련된 것을 명시하는 곳이 있는데, RFC가 대표적이다. Request for Comments의 줄임말로, 이 단체에서는 소속된 엔지니어들이 인터넷과 관련된 규약을 정리하여 올린다고 한다. 이곳에서는 uri, url의 구성에 대한 공식적인 내용이 정리되어 있다. 아래는 그 링크.

RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax

 

RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax

[Docs] [txt|pdf] [draft-fielding-...] [Tracker] [Diff1] [Diff2] [Errata] Updated by: 6874, 7320 INTERNET STANDARD Errata Exist Network Working Group T. Berners-Lee Request for Comments: 3986 W3C/MIT STD: 66 R. Fielding Updates: 1738 Day Software Obsoletes:

tools.ietf.org

URI의 구조에 대해서는 RFC 도큐먼트에서 이렇게 설명하고 있다. URL과 관련하여 각각의 항목이 의미하는 바는 아래의 링크에서 참조하여 덧붙인다.

[HTTP] URI, URL 구조

 

[HTTP] URI, URL 구조

1. URI ( Uniform Resource Identifier ) URI이란, 웹 서버가 리소스를 고유하게 식별할 수 있도록 하는 것으로써, URL과 URN 두 가지가 있는데 일반적으로 URL을 사용합니다. URL은 특정 서버의 한 리소스에 대.

victorydntmd.tistory.com

<스킴>://<사용자이름>:<비밀번호>@<호스트>:<포트>/<경로>?<질의>#<프레그먼트>
  • 스킴: 리소스에 어떻게 접근할 것인지를 명시. 프로토콜 등이 많이 쓰인다.
  • 사용자 및 비밀번호: 어떤 서버들은 사용자 이름과 비밀번호를 요구하기도 한다고 한다. 호스트를 적기 전에 @앞에 사용자:비밀번호 형태로 넘겨주게 된다.
  • 호스트: 우리가 흔히 '주소'라고 인식하는 도메인명에 해당한다.
  • 포트: 해당 서버의 몇 번 포트로 접근하는지를 명시한다.
  • 경로: 호스트에서 제공하는 자원의 경로.
  • 질의: 쿼리 스트링. 클라이언트가 GET 방식으로 요청할 때 필요한 데이터를 넘겨주기 위해 작성하는 부분이다.
  • 프래그먼트: #으로 시작하고, 접근한 페이지 내에서 해당 id가 있는 곳으로 스크롤을 이동시켜준다.

' > 배경지식' 카테고리의 다른 글

[요약] HTTP 완벽 가이드 - 1부 HTTP: 웹의 기초  (0) 2022.07.03
SameSite vs SameOrigin  (1) 2021.04.11
CORS, SOP란?  (0) 2021.03.13
HTTP란? HTTP와 TCP의 연관성은 무엇일까?  (1) 2020.10.25
REST API의 6가지 특징  (0) 2020.09.21