摘要:可選項目,一般使用隔開或隔開的鍵值對可選項目包,其它額外的標識信息和的不同這和長得也很相似,是的縮寫,譯為統(tǒng)一資源定位符。格式類似協(xié)議主機名具體地址可能還有參數(shù)這里有三個概念,統(tǒng)一資源標識符,統(tǒng)一資源定位符,統(tǒng)一資源名稱。
URI
URI是Universal Resource Identifier通用資源標志符,是一個用于標識某一互聯(lián)網(wǎng)資源名稱的字符串。 該種標識允許用戶對任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進行交互操作。URI由包括確定語法和相關(guān)協(xié)議的方案所定義。
URI的初識若干部分
協(xié)議/scheme name
類似 https、http、file、ed2k
主機名
這部分比較熟悉的是 //baidu.com 網(wǎng)絡主機,也可能是其他的形式的資源:mailto:名稱@域名 用戶郵箱,
query/參數(shù)
類似a=1&b=2
標識符/錨點
有的URI指向的不是整個資源,而是某個資源的內(nèi)部某個模塊,這也是我們熟悉的錨點:https://baidu.com#test,這是指向資源內(nèi)部的某一部分。
相對URI
有的時候請求的資源可能是相對當前資源的路徑來完成的, 這樣的,
整體的書寫方式如下:
: [ ? ] [ # ]
例如:
http://write.blog.csdn.NET/po...
file:///c:/WINDOWS/clock.avi
Git://github.com/user/project-name.git
ftp://user1:1234@地址
ed2k://|file|%5BMAC%E7%89%88%E6%9E%81%E5%93%81%E9%A3%9E%E8%BD%A69%EF%BC%9A%E6%9C%80%E9%AB%98%E9%80%9A%E7%BC%89%5D.%5BMACGAME%5DNeed.For.Speed.Most.Wanted.dmg|4096933888|2c55f0ad2cb7f6b296db94090b63e88e|h=ltcxuvnp24ufx25h2x7ugfaxfchjkwxa|/
這些都是一個URI Scheme。
其中:
這URI和URL長得也很相似,URL是Uniform Resource Locator的縮寫,譯為“統(tǒng)一資源定位符”。格式類似
協(xié)議【http、https】://主機名【baidu.com】/具體地址【test/test.html】【可能還有參數(shù)】
這里有三個概念:
URI :Uniform Resource Identifier,統(tǒng)一資源標識符;
URL:Uniform Resource Locator,統(tǒng)一資源定位符;
URN:Uniform Resource Name,統(tǒng)一資源名稱。是URL的一種更新形式,統(tǒng)一資源名稱(URN,,Uniform Resource Name)不依賴于位置,并且有可能減少失效連接的個數(shù)。但是其流行還需假以時日,因為它需要更精密軟件的支持。
其中,URL,URN是URI的子集。
URI編解碼uri中會遇到的兩個問題:
在URI經(jīng)常會出現(xiàn)一些明文內(nèi)容,例如 https://baidu.com?query=破碎&t=知乎, 這樣的uri的內(nèi)容大家都是可見的,這就需要把一些特殊字符進行編碼,
方法:encodeURI() ,把uri進行編碼,但是并不會對uri中具有特殊含義的的字符進行編碼,具體不會編碼的部分包括括號中的字符【, / ? : @ & = + $ #】,
encodeURI("my test.asp?name=st?le&car=saab")
// my%20test.php?name=st%C3%A5le&car=saab
解碼的話可以使用 decodeURI()
decodeURI("my%20test.php?name=st%C3%A5le&car=saab")
// my test.asp?name=st?le&car=saab
有的時候uri的某些組成部分自身含有一些特殊字符,這些特殊字符在uri自身在有著特殊意義,這樣會導致錯誤的解析uri,例如:
test.asp?name=sta&le //這里 query的name的值sta&le,包含了頁數(shù)字符&,是的解析name的值為 sta 就停止了
這個時候也需要進行處理。同樣也是對進行編碼操作,
方法:encodeURIComponent(),這回對除了字母、數(shù)字、(、)、.、!、~、*、"、-和_之外的所有字符,而類似【 :;/?:@&=+$,#】 這些用于分隔 URI 組件的標點符號都會由一個或多個十六進制的轉(zhuǎn)義序列替換的。
: [ ? ] [ # ] //上面的描述是一個uri的完整組成,每個部分都可以認為是uri的組件,可以進行多帶帶的編碼 //用戶輸入的數(shù)據(jù)作為query參數(shù),用戶輸入了"test&test=測試"這樣的字符串時,只是一個查詢參數(shù) var uri = "http://test.com"; var queryValue = "test&test=測試"; //需要編碼,不然會被當成兩個鍵值對了 var uri += "?query=" + encodeURIComponent(queryValue); //這樣就是 query = "test&test=測試";真正的結(jié)果, //而不是 query = "test"; test= "測試" 這樣的兩個鍵值對
解碼方法:decodeURIComponent()
參考:http://blog.csdn.net/woyaowen...
https://baike.baidu.com/item/...
https://www.zhihu.com/questio...
http://blog.csdn.net/nicolas_...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/84518.html
摘要:社區(qū)中的說法大概是這個是因為小程序架構(gòu)的原因?qū)е率录幸欢ǖ难舆t,最終使的改變不夠及時導致的。折中解決辦法隱藏,使用結(jié)構(gòu),重新渲染分享圖。 1、整個頁面覆蓋的自定義彈窗,滑動彈窗中的內(nèi)容,頁面內(nèi)容也會滑動。如果快速滾動彈窗,頁面內(nèi)容和彈窗中的內(nèi)容有時會錯亂。這個問題大多出現(xiàn)在蘋果手機上,類似事件事件穿透的效果。 自定義彈窗截圖如下:showImg(https://segmentfaul...
摘要:社區(qū)中的說法大概是這個是因為小程序架構(gòu)的原因?qū)е率录幸欢ǖ难舆t,最終使的改變不夠及時導致的。折中解決辦法隱藏,使用結(jié)構(gòu),重新渲染分享圖。 1、整個頁面覆蓋的自定義彈窗,滑動彈窗中的內(nèi)容,頁面內(nèi)容也會滑動。如果快速滾動彈窗,頁面內(nèi)容和彈窗中的內(nèi)容有時會錯亂。這個問題大多出現(xiàn)在蘋果手機上,類似事件事件穿透的效果。 自定義彈窗截圖如下:showImg(https://segmentfaul...
摘要:社區(qū)中的說法大概是這個是因為小程序架構(gòu)的原因?qū)е率录幸欢ǖ难舆t,最終使的改變不夠及時導致的。折中解決辦法隱藏,使用結(jié)構(gòu),重新渲染分享圖。 1、整個頁面覆蓋的自定義彈窗,滑動彈窗中的內(nèi)容,頁面內(nèi)容也會滑動。如果快速滾動彈窗,頁面內(nèi)容和彈窗中的內(nèi)容有時會錯亂。這個問題大多出現(xiàn)在蘋果手機上,類似事件事件穿透的效果。 自定義彈窗截圖如下:showImg(https://segmentfaul...
摘要:組成形式一個是由組件分隔符分割的組件序列組成。其一般形式是其中斜體的名字代表組件,是當作分隔符的保留字符。以上說明摘自標準,為了容易讀懂做了點編輯加工。 一、這四個方法的用處 1、用來編碼和解碼URI的 統(tǒng)一資源標識符,或叫做 URI,是用來標識互聯(lián)網(wǎng)上的資源(例如,網(wǎng)頁或文件)和怎樣訪問這些資源的傳輸協(xié)議(例如,HTTP 或 FTP)的字符串。除了encodeURI、encodeUR...
閱讀 1737·2021-11-24 10:18
閱讀 2211·2021-11-18 13:20
閱讀 2339·2021-08-23 09:46
閱讀 997·2019-08-30 15:56
閱讀 2847·2019-08-30 15:53
閱讀 743·2019-08-30 14:22
閱讀 474·2019-08-29 15:34
閱讀 2538·2019-08-29 12:14