URI(Uniform Resource Identifier)

URI(Uniform Resource Identifier)λŠ” μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό λ„€νŠΈμ›Œν¬μ—μ„œ λ¦¬μ†ŒμŠ€λ₯Ό μ‹λ³„ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” λ¬Έμžμ—΄λ‘œ, API μ—”λ“œν¬μΈνŠΈ, 이미지, λ¬Έμ„œ λ“± λ‹€μ–‘ν•œ μžμ›μ„ 가리킨닀.

URI ꡬ성 μš”μ†Œ

URIλŠ” μ—¬λŸ¬ ꡬ솑 μš”μ†Œλ‘œ 이루어져 있으며, λ‹€μŒκ³Ό 같이 κ΅¬μ„±λœλ‹€.

== URL ==

          userinfo       host      port
          β”Œβ”€β”€β”΄β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β” β”Œβ”΄β”
  https://john.doe@www.example.com:123/forum/questions;param1=value1?tag=networking&order=newest#top
  β””β”€β”¬β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”¬β”˜
  scheme          authority                  path         parameter            query           fragment

== URN ==

  urn:oasis:names:specification:docbook:dtd:xml:4.1.2
  β””β”¬β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  scheme                    path
ꡬ성 μš”μ†Œ
μ˜ˆμ‹œ
μ„€λͺ…

scheme

http, https, ftp, file, ...

λ¦¬μ†ŒμŠ€μ— μ ‘κ·Όν•˜κΈ° μœ„ν•œ ν”„λ‘œν† μ½œμ„ 가리킴

userinfo

user:password

μ„œλ²„μ— μ ‘κ·Όν•  λ•Œ μ‚¬μš©μž 정보(FTP 같은 λͺ‡λͺ‡ ν”„λ‘œν† μ½œμ—μ„œ μ‚¬μš©)

host

www.google.com

호슀트λͺ… λ˜λŠ” IPμ£Όμ†Œ

port

80, 443, 8080

μ ‘κ·Ό 포트(일뢀 port μƒλž΅ κ°€λŠ₯)

path

/search

λ¦¬μ†ŒμŠ€ 경둜

parameter

;param1=value1

λ¦¬μ†ŒμŠ€μ— λŒ€ν•œ 좔가적인 λ§€κ°œλ³€μˆ˜ λ˜λŠ” 정보λ₯Ό μ „λ‹¬ν•˜λŠ” 데 μ‚¬μš©λ˜λ©°, ;둜 μ‹œμž‘ν•¨

query

?q=hello&hl=ko

key=value ν˜•νƒœ, ?둜 μ‹œμž‘ &둜 ꡬ뢄, query parameter

fragment

#bookmark

λ¦¬μ†ŒμŠ€ λ‚΄μ˜ νŠΉμ • 쑰각을 κ°€λ¦¬ν‚€λŠ”λ° μ‚¬μš©λ¨ (μ„œλ²„μ— μ „μ†‘ν•˜μ§€ μ•Šκ³ , ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ λ¦¬μ†ŒμŠ€λ₯Ό ν™•μΈν•œ λ’€ ν•΄λ‹Ή μœ„μΉ˜λ‘œ 이동)

URI/URL/URN

URIλŠ” URLκ³Ό URN을 ν¬ν•¨ν•˜λŠ” μƒμœ„ κ°œλ…μ΄λ‹€.

  • URI (Uniform Resource Identifier): λ¦¬μ†ŒμŠ€λ₯Ό μ‹λ³„ν•˜λŠ” 톡합 μžμ› μ‹λ³„μž

  • URL (Uniform Resource Locator): λ¦¬μ†ŒμŠ€μ˜ μœ„μΉ˜λ₯Ό κ°€λ¦¬ν‚€λŠ” μ£Όμ†Œ

  • URN (Uniform Resource Name): λ¦¬μ†ŒμŠ€μ˜ κ³ μœ ν•œ 이름

비ꡐ μ˜ˆμ‹œ

  • URL: https://example.com/images/logo.png (μœ„μΉ˜κ°€ λ°”λ€Œλ©΄ μ ‘κ·Ό λΆˆκ°€)

  • URN: urn:isbn:978-0-123-45678-9 (책이 μ–΄λŠ λ„μ„œκ΄€μ— μžˆλ“  μ±…μ˜ 고유 λ²ˆν˜ΈλŠ” λ³€ν•˜μ§€ μ•ŠμŒ)

ν˜„λŒ€ μ›Ήμ—μ„œλŠ” λŒ€λΆ€λΆ„ μžμ›μ˜ μœ„μΉ˜λ₯Ό 기반으둜 ν•˜λŠ” URL을 μ‚¬μš©ν•˜κ³  μžˆμ–΄, ν†΅μƒμ μœΌλ‘œ URI와 URL을 같은 의미둜 ν˜Όμš©ν•΄μ„œ λΆ€λ₯΄κΈ°λ„ ν•œλ‹€.

URI 인코딩

URIλŠ” US-ASCII 문자 μ§‘ν•©(영문, 숫자, 일뢀 특수문자)으둜만 κ΅¬μ„±λ˜μ–΄μ•Όν•œλ‹€.

  • 7λΉ„νŠΈλ‘œ ν‘œν˜„λ˜λŠ” 128κ°œκΉŒμ§€λ§Œ ν‘œν˜„ κ°€λŠ₯(128개의 λ¬Έμžλ‘œλŠ” μ˜μ–΄μ™€ 숫자, 일뢀 특수문자만 ν‘œν˜„)

  • 그외에 ν•œκΈ€κ³Ό 같은 λ‹€λ₯Έ μ–Έμ–΄λ‚˜ 특수문자 μ‚¬μš© λΆˆκ°€

  • μ˜ˆμ•½λœ λ¬Έμžλ“€μ€ URIμ—μ„œ νŠΉλ³„ν•œ 의미λ₯Ό κ°€μ§€λ―€λ‘œ, 일반 문자둜 μ‚¬μš© λΆˆκ°€

μ˜ˆμ•½μ–΄λ“€κ³Ό 특수문자, 그리고 λ‹€λ₯Έ μ–Έμ–΄λ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ΄μŠ€μΌ€μ΄ν”„ 문자λ₯Ό ν†΅ν•œ 인코딩을 μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆλ‹€.

문자 λΆ„λ₯˜
μ‚¬μš© κ°€λŠ₯ 문자 μ§‘ν•©
μ„€λͺ…

μ˜ˆμ•½λ˜μ§€ μ•Šμ€ 문자

영숫자, -, _, ., ~

URIμ—μ„œ νŠΉλ³„ν•œ 의미λ₯Ό κ°€μ§€μ§€ μ•ŠμŒ

μ˜ˆμ•½λœ 문자

?, #, &, =, +, /, :, ;, @, !, $, ', (, ), *, ,, [, ],

URIμ—μ„œ νŠΉλ³„ν•œ 의미λ₯Ό 가짐

μ΄μŠ€μΌ€μ΄ν”„ 문자

%

μ˜ˆμ•½λœ 문자λ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄ μ‚¬μš©

μ΄μŠ€μΌ€μ΄ν”„ 문자 μ‚¬μš© μ˜ˆμ‹œ

  • μ˜ˆμ•½λœ λ¬Έμžλ‚˜ λΉ„-ASCII 문자λ₯Ό % 뒀에 16μ§„μˆ˜ κ°’μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ ν‘œν˜„

  • 예: 곡백(Space) -> %20, ν•œκΈ€ 'κ°€' -> %EA%B0%80 (UTF-8 κΈ°μ€€)

URL의 ν•œκ³„μ™€ λŒ€μ•ˆ

URL은 λ¦¬μ†ŒμŠ€μ˜ μœ„μΉ˜λ₯Ό κ°€λ¦¬ν‚€λ―€λ‘œ, λ¦¬μ†ŒμŠ€κ°€ μ΄λ™ν•˜κ±°λ‚˜ μ‚­μ œλ˜λ©΄ 연결이 λŠμ–΄μ§€λŠ” Link Rot(죽은 링크) ν˜„μƒμ΄ λ°œμƒν•œλ‹€.(λŒ€ν‘œμ μΈ 예: 404 Not Found)

  • PURL(Persistent URL): 쀑간에 λ¦¬λ‹€μ΄λ ‰μ…˜ μ„œλ²„λ₯Ό 두어 μ‹€μ œ URL이 λ³€κ²½λ˜μ–΄λ„ PURL은 μœ μ§€λ˜λ„λ‘ ν•˜λŠ” 방식

  • DOI(Digital Object Identifier): λ…Όλ¬Έμ΄λ‚˜ μ „μž λ¬Έμ„œμ— 영ꡬ적인 μ‹λ³„μžλ₯Ό λΆ€μ—¬ν•˜λŠ” μ‹œμŠ€ν…œμœΌλ‘œ URN의 μΌμ’…μœΌλ‘œ λ³Ό 수 있음

참고자료

Last updated

Was this helpful?