URI
URI(Uniform Resource Identifier)λ μμμ κ°λ¦¬ν€λ λ¬Έμμ΄μ΄λ€.
μμμ μΉνμ΄μ§, μ¬μ§μ΄λ html νμΌ, λμμ λ± μΈν°λ·μμ κ°μ Έμ¬ μ μλ λ°μ΄ν° 무μμ΄λ λ μ μλ€.
URIλ μ΄μ κ·Έ μμμ κ°λ¦¬ν€λ μλ³μμ΄λ€. μμμ μ΄λ¦μΌλ‘ λνλΌ μλ μκ³ κ·Έ μμμ μμΉλ‘ λνλΌ μλ μλ€.
URI Syntex
URIλ scheme, authority(userinfo), path, query κ·Έλ¦¬κ³ fragmentλ‘ μ΄λ£¨μ΄μ Έμλ€.
The generic URI syntax consists of a hierarchical sequence of
components referred to as the scheme, authority, path, query, and
fragment.
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part = "//" authority path-abempty
/ path-absolute
/ path-rootless
/ path-empty
μΆμ² : https://datatracker.ietf.org/doc/html/rfc3986#section-3.1
schemeμ λνμ μΈ μλ‘λ http, https, ftp, mailto, file, data and irc λ±μ΄ μλ€. schemeμ ν΅ν΄ μμμ μ΄λ»κ² μ κ·Όν΄μΌνλμ§ μ μ μλ€. λλ¨Έμ§ κ΅¬μ± μμλ€μ URL λΆλΆμμ λ μμΈν 보λλ‘ νκ² λ€.
μλλ URIμ μμμ΄λ€.
userinfo host port
ββββ΄ββββ ββββββββ΄βββββββ ββ΄β
https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top
βββ¬ββ βββββββββββββββ¬ββββββββββββββββββββββ¬ββββββββ ββββββββββββββ¬βββββββββββββ ββ¬β
scheme authority path query fragment
ldap://[2001:db8::7]/c=GB?objectClass?one
ββ¬ββ βββββββ¬βββββββββ¬ββ ββββββββ¬βββββββ
scheme authority path query
mailto:John.Doe@example.com
βββ¬βββ ββββββ¬ββββββββββββββ
scheme path
news:comp.infosystems.www.servers.unix
ββ¬ββ βββββββββββββββ¬ββββββββββββββββββ
scheme path
tel:+1-816-555-1212
ββ¬β ββββββββ¬βββββββ
scheme path
telnet://192.0.2.16:80/
βββ¬βββ βββββββ¬βββββββ
scheme authority path
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
ββ¬β ββββββββββββββββββββββββ¬βββββββββββββββββββββββ
scheme path
URL
URL(Uniform Resource Locator)μ μΈν°λ·μμ μμμ μμΉλ₯Ό κ°λ¦¬ν€λ λ¬Έμμ΄μ΄λ€.
HTTP λ§₯λ½μμ URLμ λ³΄ν΅ λ§ν¬ νΉμ μΉ μ£ΌμλΌκ³ λΆλ¦°λ€. μ°λ¦¬κ° κ°μ₯ λ§μ΄ 보λ URIμ ννκ° URLμ΄λΌκ³ ν μ μλ€. URIμ URL μ°¨μ΄λ μλ μμΌλκΉ κΆκΈνλ©΄ λ¨Όμ λ³΄κ³ μ€κΈ°!
https://developer.mozilla.org
https://developer.mozilla.org/en-US/docs/Learn/
https://developer.mozilla.org/en-US/search?q=URL
μμ κ°μ κ²λ€μ΄ URLμ μμλΌκ³ λ³Ό μ μλ€. ν΄λΉ URLλ₯Ό μ£Όμμ°½μ μ λ ₯νλ μ΄μ λ§λ λ°μ΄ν°λ₯Ό λ‘λν μ μλ€.
URL Syntex
μ΄μ URLμ ꡬ쑰λ₯Ό μ΄ν΄λ³΄μ.
URLλ URIμ΄κΈ° λλ¬Έμ μμ λμ¨ URIμ ꡬμ±μ λ°λ₯Έλ€. μ΄μ μ κ΅¬μ± μμμ λνμ¬ νλνλ μμΈν μ΄ν΄λ³΄λλ‘ νμ.
scheme
URLμ 첫 λ²μ§Έ λΆλΆμ λΈλΌμ°μ κ° λ¦¬μμ€λ₯Ό μμ²νλ λ° μ¬μ©ν΄μΌ νλ νλ‘ν μ½μ λνλΈλ€. μΌλ°μ μΌλ‘ μΉμ¬μ΄νΈμ κ²½μ° νλ‘ν μ½μ HTTPS λλ HTTP, FTP λ±μ΄ μλ€.
Authority
Authorityμμλ User info, νΈμ€νΈλͺ (ex: IP μ£Όμ, λλ©μΈ μ΄λ¦ λ±), ν¬νΈ λ±μ΄ ν¬ν¨λλ€.
- μ¬κΈ°μ User infoλ κ±°μ μ°μ΄μ§ μλλ€
- νΈμ€νΈλͺ μ IPμ£Όμ νΉμ λλ©μΈμ΄λ¦(tistory.com) λ±μ΄ μ¬ μ μλ€.
- ν¬νΈλ ':'λ‘ κ΅¬λΆλλλ° 80λ²(HTTP), 443(HTTPS)μ΄λ©΄ μλ΅κ°λ₯νλ, κ·Έ μ΄μΈμ κ²½μ° νμμ΄λ€.
Path
/path/to/myfile.htmlμ μΉ μλ²μ μλ μμμ κ²½λ‘μ΄λ€.
Query String
'?'λ‘μμνκ³ key-value ννμ΄λ€. μ¬λ¬κ°μ§ νλΌλ―Έν°κ° μμΌλ©΄ '&'μΌλ‘ ꡬλΆνλ€.
Fragment
fragmentλ '#'λ‘ μμνλ©° html λ΄λΆ λΆλ§ν¬ λ±μ μ¬μ©νλ€. νμ§λ§ μλ²λ‘ μ μ‘λμ§λ μλλ€.
URLμ νκ³
μ΄κ±΄ μλ§ μ¬λ¬λΆλ μ’ μ’ λ³Έ κ²½μ°μΌ κ²μ΄λ€. μμμ κ·Έλλ‘μ§λ§ μ΄λ₯Ό κ°λ¦¬ν€λ μ£Όμκ° λ³νλ κ²½μ°λ₯Ό μκ°ν΄λ³΄μ.
μλ₯Ό λ€μ΄ μ΄λ€ μ£Όμ http://aaaaa/pathA/1μ μλ κΈμ λ΄κ° μ€ν¬λ©νλ€κ³ νμ. κ·Έλ°λ° κ·Έ κΈμ μμ±μκ° κ°μκΈ° κ·Έ μ£Όμλ₯Ό http://aaaaa/pathB/1λ‘ λ°κΏ¨λ€κ³ μκ°ν΄λ³΄μ. (μλ₯Ό λ€μ΄ μΉ΄ν κ³ λ¦¬λ₯Ό λ°κΎΌκ²½μ°) κ·Έλ° κ²½μ° λλ μ΄μ μ무리 http://aaaaa/pathA/1μμ μλ κΈμ μ κ·Όνκ³ μΆμ΄λ μ κ·Όν μκ° μλ€. μλνλ©΄ κ·Έ μ£Όμκ° μλ―Έμμ΄μ‘κΈ° λλ¬Έμ΄λ€.
κ°μκΈ° μμκ° λ μ¬λλλ° Cμμ ν¬μΈν°λ₯Ό μκ°ν΄λ³΄μ. (λͺ¨λ₯΄λ©΄ λμ΄κ°λ λλ€)
int a=1;
int* p1=&a;
μ΄λ° κ²½μ° λ³μ aμ μ κ·ΌνκΈ° μν μ°λ¦¬λ ν¬μΈν° p1μ μ¬μ©νλ€.
νμ§λ§ μ κΈ°μ μ΄νμ p1=NULL;λ‘ ν΄μ£Όλ©΄ μ΄λ»κ² λ κΉ? μ°λ¦¬λ λμ΄μ aλ₯Ό μ κ·Όν μκ° μλ€. μλνλ©΄ μ°λ¦¬λ μλ aμμ²΄κ° μλλΌ p1μΌλ‘ μ κ·ΌνκΈ° λλ¬Έμ΄λ€. μμκ° μ’ μ΅μ§μ€λ¬μ΄ μ μ΄ μμ§ μμλ°, μ΄λ°μμΌλ‘ μκ°νλ©΄ λλ€. URLμ ν¬μΈν°κ³ , μμμ λ°μ΄ν° κ·Έμ체λ‘!
μλ¬΄νΌ μ΄λ¬ν νκ³ λλ¬Έμ URNμ΄ λ±μ₯νκ² λμλ€.
URN
URN(Uniform Resource Name)μ μμμ 'μ΄λ¦'μ λνλ΄λ μλ³μμ΄λ€. URNμ μμΉ(μ£Όμ)λ μ κ·Όλ²μ λν λͺ μ μμ΄ μμμ λνλΈλ€.
μλ₯Ό λ€λ©΄, ISBN μμ€ν μμ ISBN 0-486-27557-4μ μ °μ΅μ€νΌμ΄μ μν λ‘λ―Έμ€μ μ€λ¦¬μ£μ νΉμ μλμ μ μ§μΉνλ€. μ΄λ₯Ό URNμΌλ‘ λνλ΄λ©΄ urn:isbn:0-486-27557-4μΌλ‘ νκΈ°ν μ μλ€. λ¨, μ΄ νκΈ°λ²μλμ΄λμμ μ± μ μ¬λ³Έμ μ°ΎμμΌ ν μ§μ λν μ 보λ ν¬ν¨νκ³ μμ§ μλ€.
URI, URL, URNμ κ΄κ³
μλ₯Όλ€μ΄ 'λΏ‘λΏ‘μ΄'λΌλ μ¬λμ΄ AμννΈ 123νΈμ μ°λ€κ³ κ°μ ν΄λ³΄μ. μ΄λ μμμ λΏ‘λΏ‘μ΄λΌλ μλͺ
μ²΄κ° λλ κ²μ΄κ³ , μμμ μ΄λ¦μ 'λΏ‘λΏ‘μ΄'μΌ κ²μ΄λ€. κ·Έλ¦¬κ³ μμμ μμΉλ 'AμννΈ 123νΈ'κ° λλ€.
μ¬κΈ°μ μμμ μμΉλ₯Ό μ°λ¦¬λ URL(Uniform Resource Loacator), μμμ μ΄λ¦μ URN(Uniform Resource Name)μ΄λΌκ³ νλ κ²μ΄λ€. λ°λΌμ 'λΏ‘λΏ‘μ΄'λΌλ μ΄λ¦μ URN, 'A μννΈ 123νΈ'λ URLμ΄ λλ€κ³ ν μ μκ² λ€. κ·Έλ¦¬κ³ URL, URN λͺ¨λ μμμ κ°λ¦¬ν€λ λ°©λ² μ€ νλμ΄λ―λ‘ URIμ μνκ² λλ€. μλνλ©΄ μ°λ¦¬λ μμμ κ°λ¦¬ν€λ κ² μ체λ₯Ό URIλΌκ³ νκΈ°λ‘ νκΈ° λλ¬Έμ΄λ€.
References
URI - MDN Web Docs Glossary: Definitions of Web-related terms | MDN
A URI (Uniform Resource Identifier) is a string that refers to a resource.
developer.mozilla.org
URL - MDN Web Docs μ©μ΄ μ¬μ : μΉ μ©μ΄ μ μ | MDN
URL(Uniform Resource Locator)μ μΈν°λ·μμ μΉ νμ΄μ§, μ΄λ―Έμ§, λΉλμ€ λ± λ¦¬μμ€μ μμΉλ₯Ό κ°λ¦¬ν€λ λ¬Έμμ΄μ λλ€.
developer.mozilla.org
[λ€νΈμν¬/κΈ°λ³Έ] URI, URL λ° URNμ μ°¨μ΄μ - νλλͺ¬
μμ 보μ μ€μ μμ΅λλ€… π κ·Έλλ μ견 μμΌμλ©΄ μ£ΌμΈμ. β‘οΈ URIκ³Ό κ·Έ νμ κ°λ URL, URN κ°λ μ΄ν΄νκΈ° βοΈURI μ΄λ? URIλ Uniform Resource Identifier, ν΅ν© μμ μλ³μμ μ€μλ§μ΄λ€. λΈλΌμ°μ
hanamon.kr
URLμ΄λ? - Web κ°λ° νμ΅νκΈ° | MDN
μ΄ λ¬Έμμμλ URL(Uniform Resource Locator)μ΄ λ¬΄μμ΄λ©° μ΄λ»κ² ꡬμ±λμ΄ μλμ§ μ€λͺ ν©λλ€.
developer.mozilla.org
[λ€νΈμν¬] URI, URL, URN
URI, URL, URNμ μ μμ μ°¨μ΄
velog.io
'π₯οΈ Computer Science > Web' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λλ¦Όν΅(Dreamhack)] pathtraversal (0) | 2023.09.28 |
---|---|
[Web μ©μ΄] - μΈν°λ· ν΅μ (IP,TCP/UDP, DNS, Port λ±) (0) | 2023.05.17 |
[HTTP ν€λ] X-Forwarded-for μ X-Forwarded-Proto (0) | 2023.02.22 |