欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何進(jìn)行url的編解碼分析-創(chuàng)新互聯(lián)

這篇文章給大家介紹如何進(jìn)行url的編解碼分析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)是專業(yè)的關(guān)嶺網(wǎng)站建設(shè)公司,關(guān)嶺接單;提供網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行關(guān)嶺網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

1、URL的編解碼

1.1、特殊字符

url中使用的是ASCII碼(8位)字符集中的字符。如東亞地區(qū)中文在url中就需要特意編碼,規(guī)則是在百分號后面接上兩個十六進(jìn)制數(shù)字,和其在ASCII字符表中的對應(yīng)位置相同。
特殊情況:
1、如常見情況不能再url中使用空格字符,當(dāng)讓現(xiàn)在先進(jìn)瀏覽器可以自動編碼如當(dāng)訪問http://192.168.90.162/advanced search.html 瀏覽器會自動http://192.168.90.162/advanced%20search.html
2、有些字符使得url非法,因?yàn)槭潜A糇址?。如斜線字符將會用來分割路徑,如果使用斜線字符而不是將其作為路徑,則需要轉(zhuǎn)義如斜線(當(dāng)然:windows下建立文件名不能包含"\/:?<>|"中的任何字符),但是linux很靈活如(touch :a;touch \<a,touch \a,支持轉(zhuǎn)義),url編碼中保留的字符:

保留字符URL編碼保留字符url編碼保留字符
;%3B3%A
/2%F@%40
&%26?%3F

3、不安全字符指那些雖然在URL中沒有特殊意義,而可能在URL的上下文中有特殊含義的字符。如雙引號在標(biāo)簽中分開屬性和值,如果在url中包含有雙引號,則瀏覽器解析時可能錯誤。此時可以用%22來編碼雙引號,進(jìn)而解決沖突。
盡管瀏覽器智能解析如何進(jìn)行url的編解碼分析
不安全字符編碼舉例:
< %3C  ,  > %3E , # %23 , % %25, ~ %7E , \ %5C 等。

1.2、urllib.parse模塊url編解碼方法

quote方法:對URL進(jìn)行編碼;
unquote: 對url進(jìn)行解碼
quote_plus:同quote方法,進(jìn)一步將空格表示成+符號;
unquote_plus:同unquote方法,將+符號變成空格

>>> r2=quote("/~test aggin &/")
>>> r2
'/%7Etest%20aggin%20%26/'    #注意空格和&符號都已經(jīng)編碼了,而”/“并沒有轉(zhuǎn)換
>>> un_r2=unquote(r2)
>>> un_r2
'/~test aggin &/'
>>> quote("~/ test","~/")   #quote第二個參數(shù)的使用:當(dāng)將"~"字符加入忽略字符列表后,再次輸出就沒有對”~“進(jìn)行編碼了。
'~/%20test'

quote_plus使用時會將”/“字符替換成%2F,并將空格字符替換成+符號,這是同quote的主要區(qū)別,如下:

>>> quote_plus("/~test aggin &/")
'%2F%7Etest+aggin+%26%2F'
>>> unquote_plus('%2F%7Etest+aggin+%26%2F')
'/~test aggin &/'

1.3、中文的編解碼

http://192.168.90.162/中文.html, 現(xiàn)在主流瀏覽器chrome,IE,edge等已經(jīng)能識別了。然而問題不能忽視,對于不安全的字符使用url編碼總是不安全的。

>>> quote("中文編碼")
'%E4%B8%AD%E6%96%87%E7%BC%96%E7%A0%81'
>>> unquote('%E4%B8%AD%E6%96%87%E7%BC%96%E7%A0%81')
'中文編碼'

1.4、查詢參數(shù)的編碼

http兩種數(shù)據(jù)提交方式:get和post。都需要提交查詢參數(shù)和其值。特別get方法中還會將這種值顯示在地址欄中如:
https://www.baidu.com/s?wd=url%E7%BC%96%E7%A0%81&rsv_spt=1&rsv_iqid=0xb6a3f6f50003c26a&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf8&rqlang=cn&tn=baiduhome_pg&rsv_enter=0&oq=url%25E7%25BC%2596%25E7%25A0%2581&rsv_t=a3a7nKjz1kdhBSmGXcoRFeCicwee05LR5H9nq5W5GZWVKwR×××WAjMl98d3Rfvhq%2FCJb&rsv_pq=8532218200044be3

>>> unquote("url%E7%BC%96%E7%A0%81")   ?wd=url%E7%BC%96%E7%A0%81會將值顯示在地址欄中
'url編碼'

對查詢參數(shù)進(jìn)行編碼的方法:urlencode由urllib.parse模塊提供該方法
功能:將查詢的參數(shù)值對返回成URL編碼的新式。參數(shù)值對可以是一系列的字典數(shù)據(jù)。

>>> urlencode([('key1','value1'),('key2','value2')])
'key1=value1&key2=value2'
>>> help(urlencode)
Help on function urlencode in module urllib.parse:

說明1、查詢參數(shù)為一個(keyword,value)的列表,這里列表的長度為2..注意參數(shù)格式列表里面套元組
2、urlencode將參數(shù)值對列表編碼成了一個URL字符串,查詢參數(shù)順序和列表中一致

>>> urlencode([("key1","urlencode編碼")])
'key1=urlencode%E7%BC%96%E7%A0%81'

urlencode方法還可以接受一個可選參數(shù),用來對輸入查詢參數(shù)中的數(shù)據(jù)進(jìn)行控制。默認(rèn)值False。即當(dāng)查詢數(shù)據(jù)(keyword,value)列表中的value也為列表時,將其使用整個quote_pluse方法進(jìn)行編碼

>>> urlencode([("keyword",("value1","value2","value3"))])
'keyword=%28%27value1%27%2C+%27value2%27%2C+%27value3%27%29'
>>> urlencode([("keyword",("value1","value2","value3"))],True) 但當(dāng)參數(shù)為True時,會將value列表中的每個值都和keyword組成一個查詢參數(shù)值對。
'keyword=value1&keyword=value2&keyword=value3'

關(guān)于如何進(jìn)行url的編解碼分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標(biāo)題:如何進(jìn)行url的編解碼分析-創(chuàng)新互聯(lián)
本文路徑:http://chinadenli.net/article24/cdpece.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航做網(wǎng)站、外貿(mào)建站、移動網(wǎng)站建設(shè)小程序開發(fā)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)