Javascript URI 解析介紹
解析URI是一個有意思的東西,之前沒有意識到,原來這東西也可以這么復(fù)雜。
URI
在維基百科中對于URI的解釋是這樣子的:
在計(jì)算機(jī)術(shù)語中,統(tǒng)一資源標(biāo)識符(Uniform Resource Identifier,或URI)是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。 該種標(biāo)識允許用戶對網(wǎng)絡(luò)中(一般指萬維網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。URI由包括確定語法和相關(guān)協(xié)議的方案所定義。
引自網(wǎng)絡(luò)上對于URI組成的解釋,而這些可以在稍后對于URI的解析中看出來。
URI一般由三部分組成:
1.訪問資源的命名機(jī)制。
2.存放資源的主機(jī)名。
3.資源自身的名稱,由路徑表示。
或者可以說是這樣子,兩者看上去是一致的。
URL的格式由下列三部分組成:
1.協(xié)議(或稱為服務(wù)方式)
2.存有該資源的主機(jī)IP地址(有時也包括端口號)
3.主機(jī)資源的具體地址。,如目錄和文件名等
URI解析
“解析”一個URI意味著將一個相對URI引用轉(zhuǎn)換為絕對形式,或者通過嘗試獲取一個可解引URI或一個URI引用所代表的資源來解引用這個URI。文檔處理軟件的“解析”部分通常同時提供這兩種功能。
Javascript URI解析
簡單地以博客中的搜索JS為例,下面就是其的URL,
http://www.dbjr.com.cn/search/?q=js&type=
然后便有了
var parser = document.createElement('a');
parser.href = "http://www.dbjr.com.cn/search/?q=js&type="
我們便可以知道其的協(xié)議、端口號、主機(jī)、具體地址等
parser.protocol;
parser.host;
parser.pathname;
parser.search;
返回的結(jié)果便是
protocol:http
host:www.dbjr.com.cn
pathname:/search/
search:?q=js&type=
上面的結(jié)果加出來,便是一個完整的URI。只是對于parser.search這部分不是很理解,對于?號而言,應(yīng)該是參數(shù),用于搜索的參數(shù)。
如果是對就于一個郵件的URI來說,假設(shè)URI是
mailto:h@jb51.net?subject=hello
那么
var parser = document.createElement('a');
parser.href = "mailto:h@jb51.net?subject=hello";
> parser.protocol
"mailto:"
> parser.pathname
"h@jb51.net"
> parser.search
"?subject=hello"
相關(guān)文章
完美實(shí)現(xiàn)js焦點(diǎn)輪播效果(一)
這篇文章主要為大家詳細(xì)介紹了完美實(shí)現(xiàn)js焦點(diǎn)輪播效果的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03es6數(shù)組的flat(),flatMap()函數(shù)用法實(shí)例分析
這篇文章主要介紹了es6數(shù)組的flat(),flatMap()函數(shù)用法,結(jié)合實(shí)例形式分析了es6數(shù)組的flat(),flatMap()函數(shù)基本功能、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04JavaScript數(shù)據(jù)類型及相互間的轉(zhuǎn)換規(guī)則
這篇文章主要介紹了JavaScript數(shù)據(jù)類型及相互間的轉(zhuǎn)換規(guī)則,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09JS實(shí)現(xiàn)獲取時間已經(jīng)時間與時間戳轉(zhuǎn)換
這篇文章主要為大家提供了用JavaScript編寫的獲取時間的類,以及時間戳轉(zhuǎn)時間的三種格式,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-03-03JavaScript NodeTree導(dǎo)航欄(菜單項(xiàng)JSON類型/自制)
利用閑暇時間自己做了個JavaScript NodeTree,網(wǎng)上有很多類似的效果,本例主要是練練手,鞏固下知識,感興趣的朋友可以了解下,或許對你學(xué)習(xí)NodeTree導(dǎo)航欄有所幫助,認(rèn)為好的就分享嘍2013-02-02