前端 — URL、URI、URN概念和區別整理,以及URL語法規則

URL(Uniform Resource Locator),統一資源定位符。表示了互聯網上資源的位置,同時也可選擇性攜帶資源的訪問方法。可是不肯定該位置是否有相應的資源,若資源位置作過變更,以前的URL將沒法訪問到該資源。html

通常由三部分組成(文章下面待會詳述):web

  • 一、協議(或稱爲服務方式)
  • 二、存有該資源的主機地址(和端口號)
  • 三、資源在該主機中的具體地址(目錄、文件名)

http://www.jaykoo.com:80/my/url/location.html數據庫

---------------------------------------------
//協議:http
//主機地址:www.jaykoo.com
//端口號:80
//文件在主機中地址:/my/url/location.htmlbash

  

URN(Uniform Resource Name),同一資源名稱。URN 是做爲特定內容的惟一名稱使用的,與目前的資源所在地無關。使用這些與位置無關的URN,就能夠將資源四處搬移。經過URN,還能夠用同一個名字經過多種網絡訪問協議來訪問資源。服務器

常見的,老司機們在magnet的格式中:網絡

magnet:?xt=urn:btih:23333333
----------------------------
下劃線標註了該資源的URN搜索引擎

  

URI(Uniform Resource Indentifier),統一資源標識符。用於標識在世界範圍內某一惟一的互聯網資源字符串。經過這個字符串規則,我能夠清楚地認知到這個網絡資源。具體怎麼標識?能夠用資源的名稱(Name)、定位(Location)來標識,或者以上二者都有,還有多是其餘的方法。加密

好比在web中,全部的文件都由「ftp:xxxxx」定義,每一個文件都有惟一的「ftp:xxxxx」,那麼這個「ftp:xxxxx」就是一個URIurl

已知具體的兩種方法URL和URN都是URI的實現:spa

  • URL:經過資源的位置信息(Location)字符串(http://www.jaykoo.com:80/my/url/location.html),來標識一個資源
  • URN:經過資源的名字信息(Name)字符串(urn:btih:23333333)標識

能夠說,URL和URN都是URI的子集,所以,一切URL和URN都是URI。


 

URL語法

格式

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

組件

組件 描述 默認值
方案(scheme)

訪問服務器以獲取資源時要使用哪些協議,常見如:

http、https、ftp等

無  
用戶(user)

不少服務器都要求輸入用戶名和密碼纔會容許用戶訪問數據,如FTP服務器。

例子:jaykoo是用戶名、mypasswd是密碼

ftp://jaykoo:mypasswd@ftp.prep.edu/pub/name

匿名
密碼(password) 如上,用戶名與密碼之間,用冒號(:)分隔 <E-mail 地址>
主機(host)

服務器主機名或IP地址。

主機名:www.jaykoo.com

IP:123.45.67.89

端口(port)

資源宿主服務器正在監聽的端口號,經過特定端口號訪問特定資源

(默認狀況下http 80 ; https 443 ;也能夠單獨指定)

每一個方案特有
路徑(path) 資源位於服務器的位置,用(/)分隔
參數(params)

負責解析URL的應用程序有時候須要經過參數來訪問資源,不然光經過協議、主機、端口這些信息可能不能訪問到資源,甚至訪問錯誤的資源。參數由(;key1=value1;key2=value2)設定。

同一URL下不一樣的路徑段中能夠分別配置上參數,如:

http://www.jaykoo.com:80/my;type1=a;type2=b/home;type=safe/index.html;id=666

其路徑 —— /my/home/index.html 下不一樣路徑段分別配置了參數。

查詢(query)

不少資源,好比數據庫服務、搜索引擎,均可以經過提問題或進行查詢來縮小請求資源的範圍

具體格式(?key1=value1&key2=value2)

http://www.jaykoo.com/index.html?name=jay&item=233

片斷(frag) #表明網頁中的一個位置,其右面的字符就是該位置的標識符(通常狀況下,錨連接會用到)

 一些經常使用Web協議(待擴充)

http

默認端口:80

格式:

  http://<host>:<port>/<path>?<query>#<frag>

  (路徑<path>中能夠傳參<params>(;key=value),https同)

https

與http惟一區別就是用了SSL(爲HTTP鏈接提供了端對端的加密機制)。其他語法基本相同。

默認端口:443

格式:

  https://<host>:<port>/<path>?<query>#<frag>

ftp

文件傳輸協議。用來在FTP服務器上傳或下載文件,並獲取服務器上的目錄結構內容列表。

默認端口:標準命令TCP端口號爲21,Port方式數據端口爲20

基本格式:

  ftp://<user>:<password>@<host>:<port>/<path>;<params>

rtsp,rtspu

 經過實時流傳輸協議(Real Time Streaming Protocol)解析的音、視頻媒體資源的標識符。rtspu的u指的是用的UDP協議獲取資源。

rtsp默認端口:554

基本格式:

  rtsp://<user>:<password>@<host>:<port>/<path>

  rtspu://<user>:<password>@<host>:<port>/<path>

file

主機上能夠直接訪問的文件。

基本格式:

  file://<host>/<path>

以上主機名能夠省略,默認訪問本機文件

telnet

用於訪問交互式業務。

默認端口:23

基本格式:

  telnet://<user>:<password>@<host>:<port>/

相關文章
相關標籤/搜索