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

如何進(jìn)行url的編解碼分析

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

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),龍南企業(yè)網(wǎng)站建設(shè),龍南品牌網(wǎng)站建設(shè),網(wǎng)站定制,龍南網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,龍南網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

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非法,因為是保留字符。如斜線字符將會用來分割路徑,如果使用斜線字符而不是將其作為路徑,則需要轉(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é)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

標(biāo)題名稱:如何進(jìn)行url的編解碼分析
轉(zhuǎn)載來源:http://chinadenli.net/article34/jhjjpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google靜態(tài)網(wǎng)站網(wǎng)站設(shè)計企業(yè)建站品牌網(wǎng)站設(shè)計搜索引擎優(yōu)化

廣告

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

小程序開發(fā)