URI, URL, URN

송철진·2023년 1월 27일
0

출처 - 위키백과 : URI, URL, URN

URI

통합 자원 식별자(Uniform Resource Identifier, URI)

인터넷에 있는 자원을 나타내는 유일한 주소.
인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다.

하위개념으로 URL, URN 이 있다.

일반 URI 의 형태

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part = "//" authority path-abempty
          / path-absolute
          / path-rootless
          / path-empty

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

예)

abc://username:password@example.com:123/path/data?key=value#fragid1 

URL

URL(Uniform Resource Locator, web address)

네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약.
컴퓨터 네트워크와 검색 메커니즘에서의 위치를 지정하는, 웹 리소스에 대한 참조.
웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다.
그 주소에 접속하려면 해당 URL에 맞는 프로토콜로 접속해야 한다.

예)

  • FTP는 FTP 클라이언트를 이용.
  • HTTP는 웹 브라우저를 이용.
  • Telnet은 Telnet 프로그램을 이용.(putty 등)

일반 URL의 형태

scheme://<user>:<password>@<host>:<port>/<url-path>

URL은 URI와는 달리, #<fragment>를 포함하지 않으며, ?<query>까지만 포함한다.

URL은 제일 앞에 자원에 접근할 방법을 정의해 둔 프로토콜 이름을 적는다.

  • gopher, telnet, ftp, http, usenet 등

프로토콜 이름 다음에는 프로토콜 이름을 구분하는 구분자인 :을 적는다.
만약 IP 혹은 Domain name 정보가 필요한 프로토콜이라면 : 다음에 //를 적는다.
프로토콜명 구분자인 : 혹은 // 다음에는 프로토콜 마다 특화된 정보를 넣는다.

예)

http://www.somehost.com/a.gif 		# IP, domain name 필요
ftp://id:pass@192.168.1.234/a.gif 	# IP, domain name 필요
mailto:somebody@mail.somehost.com 	# IP, domain name 불필요

URN

URN(Uniform Resource Name, 통합 자원 이름)
urn:scheme 을 사용하는 URI를 위한 역사적인 이름이다.
URN은 영속적이고, 위치에 독립적인 자원을 위한 지시자로 사용하기 위해 1997년도 RFC 2141 문서에서 정의되었다.

URN의 문법 (배커스-나우르 표기법)

<URN> ::= "urn:" <NID> ":" <NSS>

실제로 사용시

urn:<NID>:<NSS>			# <NID>: 네임스페이스, 지시자.

TIL

처음에 클라어언트와 통신하기 위해서

app.get('/ping', (req,res) => { res.send("pong") })

/ping 부분을 지칭할 때 URI, URL, 엔드포인트 라는 단어를 혼용해서 쓰곤 했다.
어떤 단어를 쓰는게 정확한걸까 고민했었는데
엔드포인트가 정학한 표현이지만 넓은 의미에서 URI, URL이라고 불러도 소통하는데 큰 문제는 없을 거 같다.

profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글