1、Hive的parse_url函數
parse_url(url, partToExtract[, key]) - extracts a part from a URL
解析URL字符串,partToExtract的選項包含[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]。
【host,path,query,ref,protocol,file,authority,userinfo】
舉例 :
select parse_url('http://facebook.com/path/p1.php?query=1', 'PROTOCOL') from dual; --http
select parse_url('http://facebook.com/path/p1.php?query=1', 'HOST') from dual;---facebook.com
select parse_url('http://facebook.com/path/p1.php?query=1', 'REF') from dual;---空
select parse_url('http://facebook.com/path/p1.php?query=1', 'PATH') from dual;---/path/p1.php
select parse_url('http://facebook.com/path/p1.php?query=1', 'QUERY') from dual;---空
select parse_url('http://facebook.com/path/p1.php?query=1', 'FILE') from dual;---/path/p1.php?query=1
select parse_url('http://facebook.com/path/p1.php?query=1', 'AUTHORITY') from dual;---facebook.com
select parse_url('http://facebook.com/path/p1.php?query=1', 'USERINFO') from dual;---空
下面的可看可不看
===========================================================
2、URL解釋
URL(Uniform Resoure Locator 統一資源定位器)是WWW網頁的地址,好比一個街道在城市地圖上地址。url使用數字和字母按一定順序排列以確定一個地址。
URL的第一個部分http://表示的是要訪問的文件的類型。在網上,這幾乎總是使用http(意思是超文本轉換協議,hypertext transfer protocol.因爲它是用來轉換網頁的協議.)有時也使用ftp(file transferprotocol),意爲文件傳輸協議,主要用來傳輸軟件和大文件(許多做軟件下載的網站就使用ftp作爲下載的網址);telenet(遠程登錄),主要用於遠程交談;以及文件調用等,意思是瀏覽器正在閱讀本地盤外的一個文件,而不是一個遠程計算機.
URL從左到右由下述部分組成:
(1)Internet資源類型(scheme):指出WWW 客戶程序用來C作的工具。如“http://”表示WWW服務器,“ftp://”表示FTP服務器,“gopher://”表示Gopher服務器,而“new:”表示Newgroup新聞組。
·服務器地址(host):指出WWW 網頁所在的服務器域名。
(2)端口(port):有時(並非總是這樣),對某些資源的訪問來說,需給出相應的服務器提供端口號。
(3)路徑(path):指明服務器上某資源的位置(其格式與DOS系統中的格式一樣,通常有目錄/子目錄/文件名這樣結構組成)。與端口一樣,路徑並非總是需要的。
URL地址格式排列爲:scheme://host:port/path
例如http://www.maogoo.com/bbs 就是一個典型的URL地址。
客戶程序首先看到http(超文本傳送協議),便知道處理的是HTML鏈接。接下來的www.maogoo.com是站點地址,最後是目錄/bbs
必須注意,WWW 上的服務器都是區分大小寫字母的,所以,千萬要注意正確的URL大小寫表達形式。
3、URL解析
URL即:統一資源定位符 (Uniform Resource Locator, URL)
完整的URL由這幾個部分構成:
scheme://host:port/path?query#fragment
scheme:通信協議
常用的http,ftp,maito等
host:主機
服務器(計算機)域名系統 (DNS) 主機名或 IP 地址。
port:端口號
整數,可選,省略時使用方案的默認端口,如http的默認端口爲80。
path:路徑
由零或多個"/"符號隔開的字符串,一般用來表示主機上的一個目錄或文件地址。
query:查詢
可選,用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術製作的網頁)傳遞參數,可有多個參數,用"&"符號隔開,每個參數的名和值用"="符號隔開。
fragment:信息片斷
字符串,用於指定網絡資源中的片斷。例如一個網頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。(也稱爲錨點.)
對於這樣一個URL
http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
我們可以用javascript獲得其中的各個部分
1, window.location.href
整個URl字符串(在瀏覽器中就是完整的地址欄)
本例返回值: http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere
2,window.location.protocol
URL 的協議部分
本例返回值:http:
3,window.location.host
URL 的主機部分
本例返回值:www.x2y2.com
4,window.location.port
URL 的端口部分
如果採用默認的80端口(update:即使添加了:80),那麼返回值並不是默認的80而是空字符
本例返回值:""
5,window.location.pathname
URL 的路徑部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html
6,window.location.search
查詢(參數)部分
除了給動態語言賦值以外,我們同樣可以給靜態頁面,並使用javascript來獲得相信應的參數值
本例返回值:?ver=1.0&id=6
7,window.location.hash
錨點
本例返回值:#imhere