成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

URI編解碼詳解encodeURIComponent、encodeURI

Youngdze / 2711人閱讀

摘要:可選項(xiàng)目,一般使用隔開或隔開的鍵值對(duì)可選項(xiàng)目包,其它額外的標(biāo)識(shí)信息和的不同這和長(zhǎng)得也很相似,是的縮寫,譯為統(tǒng)一資源定位符。格式類似協(xié)議主機(jī)名具體地址可能還有參數(shù)這里有三個(gè)概念,統(tǒng)一資源標(biāo)識(shí)符,統(tǒng)一資源定位符,統(tǒng)一資源名稱。

URI

URI是Universal Resource Identifier通用資源標(biāo)志符,是一個(gè)用于標(biāo)識(shí)某一互聯(lián)網(wǎng)資源名稱的字符串。 該種標(biāo)識(shí)允許用戶對(duì)任何(包括本地和互聯(lián)網(wǎng))的資源通過特定的協(xié)議進(jìn)行交互操作。URI由包括確定語法和相關(guān)協(xié)議的方案所定義。

URI的初識(shí)

若干部分

協(xié)議/scheme name
類似 https、http、file、ed2k

主機(jī)名
這部分比較熟悉的是 //baidu.com 網(wǎng)絡(luò)主機(jī),也可能是其他的形式的資源:mailto:名稱@域名 用戶郵箱,

query/參數(shù)
類似a=1&b=2

標(biāo)識(shí)符/錨點(diǎn)
有的URI指向的不是整個(gè)資源,而是某個(gè)資源的內(nèi)部某個(gè)模塊,這也是我們熟悉的錨點(diǎn):https://baidu.com#test,這是指向資源內(nèi)部的某一部分。

相對(duì)URI
有的時(shí)候請(qǐng)求的資源可能是相對(duì)當(dāng)前資源的路徑來完成的,logo 這樣的,

整體的書寫方式如下:

 :  [ ?  ] [ #  ]

例如:

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|/

這些都是一個(gè)URI Scheme。
其中:
:很明顯,這是scheme的名稱,對(duì)于上面五個(gè)scheme,它們scheme名分別是http,file, git, ftp, ed2k(電驢協(xié)議),實(shí)際上,它們也代表著協(xié)議名稱。
:實(shí)際上,一般情況,它包含 authority 和 path【//baidu.com、///c:/WINDOWS/clock.avi】。
:可選項(xiàng)目,一般使用;隔開或&隔開的鍵值對(duì)=【a=1&b=2】
:可選項(xiàng)目包,其它額外的標(biāo)識(shí)信息[#href#anchor]

和URL的不同

這URI和URL長(zhǎng)得也很相似,URL是Uniform Resource Locator的縮寫,譯為“統(tǒng)一資源定位符”。格式類似

協(xié)議【http、https】://主機(jī)名【baidu.com】/具體地址【test/test.html】【可能還有參數(shù)】

這里有三個(gè)概念:

URI :Uniform Resource Identifier,統(tǒng)一資源標(biāo)識(shí)符;

URL:Uniform Resource Locator,統(tǒng)一資源定位符;

URN:Uniform Resource Name,統(tǒng)一資源名稱。是URL的一種更新形式,統(tǒng)一資源名稱(URN,,Uniform Resource Name)不依賴于位置,并且有可能減少失效連接的個(gè)數(shù)。但是其流行還需假以時(shí)日,因?yàn)樗枰苘浖闹С帧?/p>

其中,URL,URN是URI的子集。

URI編解碼

uri中會(huì)遇到的兩個(gè)問題:

在URI經(jīng)常會(huì)出現(xiàn)一些明文內(nèi)容,例如 https://baidu.com?query=破碎&t=知乎, 這樣的uri的內(nèi)容大家都是可見的,這就需要把一些特殊字符進(jìn)行編碼,
方法:encodeURI() ,把uri進(jìn)行編碼,但是并不會(huì)對(duì)uri中具有特殊含義的的字符進(jìn)行編碼,具體不會(huì)編碼的部分包括括號(hào)中的字符【, / ? : @ & = + $ #】,
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

有的時(shí)候uri的某些組成部分自身含有一些特殊字符,這些特殊字符在uri自身在有著特殊意義,這樣會(huì)導(dǎo)致錯(cuò)誤的解析uri,例如:

test.asp?name=sta&le 
//這里 query的name的值sta&le,包含了頁數(shù)字符&,是的解析name的值為 sta 就停止了

這個(gè)時(shí)候也需要進(jìn)行處理。同樣也是對(duì)進(jìn)行編碼操作,
方法:encodeURIComponent(),這回對(duì)除了字母、數(shù)字、(、)、.、!、~、*、"、-和_之外的所有字符,而類似【 :;/?:@&=+$,#】 這些用于分隔 URI 組件的標(biāo)點(diǎn)符號(hào)都會(huì)由一個(gè)或多個(gè)十六進(jìn)制的轉(zhuǎn)義序列替換的。

 :  [ ?  ] [ #  ]
//上面的描述是一個(gè)uri的完整組成,每個(gè)部分都可以認(rèn)為是uri的組件,可以進(jìn)行多帶帶的編碼
//用戶輸入的數(shù)據(jù)作為query參數(shù),用戶輸入了"test&test=測(cè)試"這樣的字符串時(shí),只是一個(gè)查詢參數(shù)
var uri = "http://test.com";
var queryValue = "test&test=測(cè)試"; //需要編碼,不然會(huì)被當(dāng)成兩個(gè)鍵值對(duì)了
var uri += "?query=" + encodeURIComponent(queryValue);
//這樣就是 query = "test&test=測(cè)試";真正的結(jié)果,
//而不是 query = "test"; test= "測(cè)試" 這樣的兩個(gè)鍵值對(duì)

解碼方法: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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84518.html

相關(guān)文章

  • 微信小程序開發(fā)中遇到的問題及解決辦法(一)

    摘要:社區(qū)中的說法大概是這個(gè)是因?yàn)樾〕绦蚣軜?gòu)的原因?qū)е率录幸欢ǖ难舆t,最終使的改變不夠及時(shí)導(dǎo)致的。折中解決辦法隱藏,使用結(jié)構(gòu),重新渲染分享圖。 1、整個(gè)頁面覆蓋的自定義彈窗,滑動(dòng)彈窗中的內(nèi)容,頁面內(nèi)容也會(huì)滑動(dòng)。如果快速滾動(dòng)彈窗,頁面內(nèi)容和彈窗中的內(nèi)容有時(shí)會(huì)錯(cuò)亂。這個(gè)問題大多出現(xiàn)在蘋果手機(jī)上,類似事件事件穿透的效果。 自定義彈窗截圖如下:showImg(https://segmentfaul...

    pakolagij 評(píng)論0 收藏0
  • 微信小程序開發(fā)中遇到的問題及解決辦法(一)

    摘要:社區(qū)中的說法大概是這個(gè)是因?yàn)樾〕绦蚣軜?gòu)的原因?qū)е率录幸欢ǖ难舆t,最終使的改變不夠及時(shí)導(dǎo)致的。折中解決辦法隱藏,使用結(jié)構(gòu),重新渲染分享圖。 1、整個(gè)頁面覆蓋的自定義彈窗,滑動(dòng)彈窗中的內(nèi)容,頁面內(nèi)容也會(huì)滑動(dòng)。如果快速滾動(dòng)彈窗,頁面內(nèi)容和彈窗中的內(nèi)容有時(shí)會(huì)錯(cuò)亂。這個(gè)問題大多出現(xiàn)在蘋果手機(jī)上,類似事件事件穿透的效果。 自定義彈窗截圖如下:showImg(https://segmentfaul...

    tinyq 評(píng)論0 收藏0
  • 微信小程序開發(fā)中遇到的問題及解決辦法(一)

    摘要:社區(qū)中的說法大概是這個(gè)是因?yàn)樾〕绦蚣軜?gòu)的原因?qū)е率录幸欢ǖ难舆t,最終使的改變不夠及時(shí)導(dǎo)致的。折中解決辦法隱藏,使用結(jié)構(gòu),重新渲染分享圖。 1、整個(gè)頁面覆蓋的自定義彈窗,滑動(dòng)彈窗中的內(nèi)容,頁面內(nèi)容也會(huì)滑動(dòng)。如果快速滾動(dòng)彈窗,頁面內(nèi)容和彈窗中的內(nèi)容有時(shí)會(huì)錯(cuò)亂。這個(gè)問題大多出現(xiàn)在蘋果手機(jī)上,類似事件事件穿透的效果。 自定義彈窗截圖如下:showImg(https://segmentfaul...

    lowett 評(píng)論0 收藏0
  • encodeURI、encodeURIComponent、decodeURI、decodeURICo

    摘要:組成形式一個(gè)是由組件分隔符分割的組件序列組成。其一般形式是其中斜體的名字代表組件,是當(dāng)作分隔符的保留字符。以上說明摘自標(biāo)準(zhǔn),為了容易讀懂做了點(diǎn)編輯加工。 一、這四個(gè)方法的用處 1、用來編碼和解碼URI的 統(tǒng)一資源標(biāo)識(shí)符,或叫做 URI,是用來標(biāo)識(shí)互聯(lián)網(wǎng)上的資源(例如,網(wǎng)頁或文件)和怎樣訪問這些資源的傳輸協(xié)議(例如,HTTP 或 FTP)的字符串。除了encodeURI、encodeUR...

    stonezhu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<