這篇文章給大家介紹如何進行url的編解碼分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創新互聯是一家集網站建設,龍南企業網站建設,龍南品牌網站建設,網站定制,龍南網站建設報價,網絡營銷,網絡優化,龍南網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力??沙浞譂M足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
url中使用的是ASCII碼(8位)字符集中的字符。如東亞地區中文在url中就需要特意編碼,規則是在百分號后面接上兩個十六進制數字,和其在ASCII字符表中的對應位置相同。
特殊情況:
1、如常見情況不能再url中使用空格字符,當讓現在先進瀏覽器可以自動編碼如當訪問http://192.168.90.162/advanced search.html 瀏覽器會自動http://192.168.90.162/advanced%20search.html
2、有些字符使得url非法,因為是保留字符。如斜線字符將會用來分割路徑,如果使用斜線字符而不是將其作為路徑,則需要轉義如斜線(當然:windows下建立文件名不能包含"\/:?<>|"中的任何字符),但是linux很靈活如(touch :a;touch \<a,touch \a,支持轉義),url編碼中保留的字符:
保留字符 | URL編碼 | 保留字符 | url編碼 | 保留字符 |
---|---|---|---|---|
; | %3B | : | 3%A | |
/ | 2%F | @ | %40 | |
& | %26 | ? | %3F |
3、不安全字符指那些雖然在URL中沒有特殊意義,而可能在URL的上下文中有特殊含義的字符。如雙引號在標簽中分開屬性和值,如果在url中包含有雙引號,則瀏覽器解析時可能錯誤。此時可以用%22來編碼雙引號,進而解決沖突。
盡管瀏覽器智能解析
不安全字符編碼舉例:
< %3C , > %3E , # %23 , % %25, ~ %7E , \ %5C 等。
quote方法:對URL進行編碼;
unquote: 對url進行解碼
quote_plus:同quote方法,進一步將空格表示成+符號;
unquote_plus:同unquote方法,將+符號變成空格
>>> r2=quote("/~test aggin &/") >>> r2 '/%7Etest%20aggin%20%26/' #注意空格和&符號都已經編碼了,而”/“并沒有轉換 >>> un_r2=unquote(r2) >>> un_r2 '/~test aggin &/' >>> quote("~/ test","~/") #quote第二個參數的使用:當將"~"字符加入忽略字符列表后,再次輸出就沒有對”~“進行編碼了。 '~/%20test'
quote_plus使用時會將”/“字符替換成%2F,并將空格字符替換成+符號,這是同quote的主要區別,如下:
>>> quote_plus("/~test aggin &/") '%2F%7Etest+aggin+%26%2F' >>> unquote_plus('%2F%7Etest+aggin+%26%2F') '/~test aggin &/'
http://192.168.90.162/中文.html, 現在主流瀏覽器chrome,IE,edge等已經能識別了。然而問題不能忽視,對于不安全的字符使用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') '中文編碼'
http兩種數據提交方式:get和post。都需要提交查詢參數和其值。特別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編碼'
對查詢參數進行編碼的方法:urlencode由urllib.parse模塊提供該方法
功能:將查詢的參數值對返回成URL編碼的新式。參數值對可以是一系列的字典數據。
>>> urlencode([('key1','value1'),('key2','value2')]) 'key1=value1&key2=value2' >>> help(urlencode) Help on function urlencode in module urllib.parse:
說明1、查詢參數為一個(keyword,value)的列表,這里列表的長度為2..注意參數格式列表里面套元組
2、urlencode將參數值對列表編碼成了一個URL字符串,查詢參數順序和列表中一致
>>> urlencode([("key1","urlencode編碼")]) 'key1=urlencode%E7%BC%96%E7%A0%81'
urlencode方法還可以接受一個可選參數,用來對輸入查詢參數中的數據進行控制。默認值False。即當查詢數據(keyword,value)列表中的value也為列表時,將其使用整個quote_pluse方法進行編碼
>>> urlencode([("keyword",("value1","value2","value3"))]) 'keyword=%28%27value1%27%2C+%27value2%27%2C+%27value3%27%29' >>> urlencode([("keyword",("value1","value2","value3"))],True) 但當參數為True時,會將value列表中的每個值都和keyword組成一個查詢參數值對。 'keyword=value1&keyword=value2&keyword=value3'
關于如何進行url的編解碼分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
標題名稱:如何進行url的編解碼分析
轉載來源:http://vcdvsql.cn/article34/jhjjpe.html
成都網站建設公司_創新互聯,為您提供Google、靜態網站、網站設計、企業建站、品牌網站設計、搜索引擎優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯