- 當沒有URI時:
-
- 站長欲分享一部電影給Forrest Gump給B時,需要告訴:
- 請使用FTP協議訪問mysite.net,端口是8502
- 登陸用戶名是user,密碼是pass
- 進入到/shared/movie/目錄下
- 轉換為二進制格式
- 下載名字為Forrest Gump.mkv格式的文件
-
- 有了URI:ftp://user:pass@mysite.net:8502/shared/movie/Forrest Gump.mkv(我們管這種方式也可以叫URL)
URL:RFC1738(1994.12),Uniform Resource Locator ,表示資源的位置,期望找到提供查找資源的方法。
URN: RFC2141(1997.5),Uniform Resource Name ,期望為資源提供持久的的,與位置無關的的表示方式,並允許簡單的將多個命名空間映射到單個URN命名空間。
- 例如磁力鏈接:magnet:?xt=urn:sha1:YNCKHTQC5C
URI:RFC1630(1994.6)、RFC3986(2005.1,取代RFC2396和RFC2732),Uniform Resource Identifier,用以區分資源,是URL和URN的超集,用以取代URL和URN概念
Uniform Resource Identifier 統一資源標識符
Resource資源
- 可以是圖片、文檔、今天上海的天氣溫度,也可以是不能通過互聯網訪問的實體
- 一個資源可以有多個URI
Identifier 標識符
- 將當前資源與其他資源區分開的名稱
Uniform 統一
- 允許不同種類的資源在同一上下文中出現
- 對不同種類資源標識符可以使用同一語義進行解讀
- 引入新標識符時,不會對已有標識符產生影響
- 允許同一資源標識符在不同的、Internet規模下的上下文中出現
合法的URI:
- ftp://ftp.is.co.za/rfc/rfc1808.txt
- http://www.ietf.org/rfc/rfc2396.txt
- ldap://[2001:db8::7]/c=GB?objectClass?one
- mailto:John.Doe@example.com
- news:comp.infosystems.www.servers.unix
- telnet://192.0.2.16:80/
- urn:oasis:names:specification:docbook:dtd:xml:4.1.2
URI格式
- URI = scheme ":" hire-part ["?" query] [ "#" fragment ]
- scheme = ALPHA * (ALPHA / DIGIT / "+" / "-" / "." )
-
- 例如 http,https,ftp,mailto,rtsp,file,telnet
-
- query = *( pchar / "/" / "?" )
- fragment = * ( pchar / "/" / "?" )
示例: https://tools.ietf.org/html/rfc/7231?test=1#page-7
hire-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty
- authority = [ userinfo "@" ] host [ ":" port]
- userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
- host = IP-literal / IPv4adress / reg-name
- port = *DIGIT
實例:https://tom:pass@localhost:8080/index.html
path = path-abempty / path-absolute / path-noscheme / path-rootless / path-empty
- path-abempty = *( "/" segment) 以/開頭的路徑或者空路徑
- path-absolute = "/" [ segment-nz *( "/" segment )] 以/開頭的路徑,但是不能以//開頭
- path-noscheme = segment-nz-nc *( "/" segment )以非:開頭的路徑
- path-rootless = segment-nz *( "/" segment )相對path-noscheme,增加允許以:開頭的路徑
- path-empty = 0 < pchar > 空路徑
向正向代理發出的請求中,傳遞的絕對URI。