URL的通常格式爲(帶方括號[]的爲可選項):html
protocol :// hostname[:port] / path / [;parameters][?query]#fragment安全
urllib.parse.urlparse會把URL解析成6部分 scheme://netloc/path;parameters?query#fragment服務器
urllib.parse.urlparse(urlstring, scheme=」, allow_fragments=True) 返回一個6元素的元組網絡
>>> from urllib.parse import urlparseide
>>> o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')ui
>>> o url
ParseResult(scheme='http', netloc='www.cwi.nl:80', path='/%7Eguido/Python.html',spa
params='', query='', fragment='').net
被解析的url對象具備只讀屬性:scheme,netloc,path,params,query,fragment,username,password,hostname,portorm
urllib.parse.urlsplit(urlstring, scheme=」, allow_fragments=True) 返回一個5元素的元組
(addressing scheme, network location, path, query, fragment identifier).同urlparse同樣,只是把path和params合併成path,不分開了。
urllib.parse.urljoin(base, url, allow_fragments=True)
>>> from urllib.parse import urljoin
>>> urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html')
'http://www.cwi.nl/%7Eguido/FAQ.html'
urllib.parse.urldefrag(url) ,以#分割url,返回一個 沒有frament的URL 和 frament值 的2元素元組,具備只讀屬性url和fragment.
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
1.協議部分:該URL的協議部分爲「http:」,「//」爲分隔符 ,指定使用的傳輸協議
2.域名部分:該URL的域名部分爲「www.aspxfans.com」。hostname存放資源的服務器的域名系統 (DNS) 主機名或 IP 地址。有時,在主機名前也能夠包含鏈接到服務器所需的用戶名和密碼(格式:username:password)
3.端口部分:跟在域名後面的是端口,域名和端口之間使用「:」做爲分隔符。若是省略端口部分,將採用默認端口
4.虛擬目錄部分:從域名後的第一個「/」開始到最後一個「/」爲止,虛擬目錄是一個URL可選部分。本例中的虛擬目錄是「/news/」,通常用來表示主機上的一個目錄或文件地址
5.文件名部分:從域名後的最後一個「/」開始到「?」爲止,是文件名部分,若是沒有「?」,則是從域名後的最後一個「/」開始到「#」爲止,是文件部分,若是沒有「?」和「#」,那麼從域名後的最後一個「/」開始到結束,都是文件名部分。本例中的文件名是「index.asp」。文件名部分也不是一個URL必須的部分,若是省略該部分,則使用默認的文件名
6.參數部分:從「?」開始到「#」爲止之間的部分爲參數部分,又稱搜索部分、查詢部分。本例中的參數部分爲「boardID=5&ID=24618&page=1」,參數與參數之間用「&」做爲分隔符每一個參數的名和值用「=」符號隔開。用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術製做的網頁)傳遞參數。
7.錨部分:從「#」開始到最後,都是錨部分。本例中的錨部分是「name」。fragment信息片段,字符串,用於指定網絡資源中的片段。例如一個網頁中有多個名詞解釋,可以使用fragment直接定位到某一名詞解釋
協議說明
file 資源是本地計算機上的文件。格式file://
ftp 經過 FTP訪問資源。格式 FTP://
gopher 經過 Gopher 協議訪問該資源。
http 經過 HTTP 訪問該資源。 格式 HTTP://
https 經過安全的 HTTPS 訪問該資源。 格式 HTTPS://
mailto 資源爲電子郵件地址,經過 SMTP 訪問。 格式 mailto:
MMS 經過 支持MMS(流媒體)協議的播放該資源。(表明軟件:Windows Media Player)格式 MMS://
ed2k 經過 支持ed2k(專用下載連接)協議的P2P軟件訪問該資源。(表明軟件:電驢) 格式 ed2k://
Flashget 經過 支持Flashget:(專用下載連接)協議的P2P軟件訪問該資源。(表明軟件:快車) 格式 Flashget://
thunder 經過 支持thunder(專用下載連接)協議的P2P軟件訪問該資源。(表明軟件:迅雷) 格式 thunder://
news 經過 NNTP 訪問該資源。
tencent 經過支持tencent(專用聊天鏈接) 協議和用戶對話。(表明軟件:QQ、TM)格式 tencent://message/?uin=號碼&Site=&Menu=yes
msnim 經過支持msnim(專用聊天鏈接) 協議和用戶對話。(表明軟件:MSN、WLM) 格式 msnim:chat?contact=郵箱地址
Windows 主機不區分 URL 大小寫,可是,Unix/Linux 主機區分大小寫。
順便加一下 url 和 uri 和 urn 吧 原文 http://blog.csdn.net/woshizhangliang999/article/details/51649461
Uniform Resource Identifier 統一資源標誌符
Uniform Resource Locator 統一資源定位器
Uniform Resource Name 統一資源名稱
identifier包含locator和name,也就是要肯定一個物品,就包含了找到 這個物品的路徑 和 這個物品的名字 。
據歸納,locator和Identifier的區別就是 是否有 傳輸協議(訪問機制),由於 對於 相同的域名 不一樣的協議 可能定位 到 不一樣的資源。
也就是包含了 scheme: 的uri 才能算正規的URL,給定了明確的地址。