• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于DNS和HTTP方式的URL轉(zhuǎn)發(fā)的比較和實現(xiàn)

      2013-04-29 00:44:03張桂香鮑國林
      無線互聯(lián)科技 2013年5期
      關(guān)鍵詞:重定向域名瀏覽器

      張桂香 鮑國林

      摘 要:URL轉(zhuǎn)發(fā)功能是網(wǎng)絡(luò)世界中訪問網(wǎng)站和管理網(wǎng)站常見需求,但是實現(xiàn)方法各異。本文分析了DNS和HTTP協(xié)議不同層次轉(zhuǎn)發(fā)方法,提供了一種結(jié)合兩者相對優(yōu)點而實現(xiàn)URL轉(zhuǎn)發(fā)功能的服務(wù)架構(gòu),完成互聯(lián)網(wǎng)用戶對域名或URL轉(zhuǎn)發(fā)要求。

      關(guān)鍵詞:URL轉(zhuǎn)發(fā);HTTP跳轉(zhuǎn)

      URL(Uniform Resource Locator的縮寫),中文為“統(tǒng)一資源定位符”,在互聯(lián)網(wǎng)領(lǐng)域也被稱為“網(wǎng)址”,是因特網(wǎng)上標(biāo)準(zhǔn)的資源地址,最初由Sir Tim Berners-Lee發(fā)明,現(xiàn)已經(jīng)W3C編制為因特網(wǎng)標(biāo)準(zhǔn)RFC 1738[1]。

      根據(jù)RFC 1738,對于常用網(wǎng)絡(luò)訪問URL格式如下:

      host:網(wǎng)絡(luò)主機域名或IP地址(RFC 1034/RFC 1123);

      port:連接端口號,可缺?。粚TTP缺省端口80(HTTPS:443;FTP:21);

      本文將介紹DNS和HTTP兩種轉(zhuǎn)發(fā)方法基本原理,分析各自特征,設(shè)計一種將域名或URL轉(zhuǎn)發(fā)到另一個URL的解決方案,為有URL轉(zhuǎn)發(fā)需求用戶提供解決方案。

      1 URL轉(zhuǎn)發(fā)

      所謂URL轉(zhuǎn)發(fā),就是通過DNS或HTTP設(shè)置,實現(xiàn)當(dāng)訪問網(wǎng)址時會自動跳轉(zhuǎn)到指定另一個網(wǎng)址的功能。

      2 URL轉(zhuǎn)發(fā)原理

      按照轉(zhuǎn)發(fā)對象需要、實現(xiàn)協(xié)議、實現(xiàn)層次不同,對于URL轉(zhuǎn)發(fā)可通過DNS或HTTP(HTTPS)設(shè)置實現(xiàn)。

      2.1 DNS方式

      僅對于主機地址(host)轉(zhuǎn)發(fā)需求,根據(jù)DNS協(xié)議[2],可以通過CNAME(別名)實現(xiàn)將源域名轉(zhuǎn)發(fā)到目的域名(轉(zhuǎn)發(fā))為主機應(yīng)用服務(wù)器。在RFC中列舉示例如下:

      在某個tld的zone文件中設(shè)置了如上CNAME記錄,則對于“USC-ISIC.ARPA.tld”這個域名請求,會被定向到“C.ISI.EDU.tld”上。

      CNAME提供了域名(domain name)轉(zhuǎn)發(fā)方法,之后DNS領(lǐng)域又提供了DNAME方式[3],實現(xiàn)了域(domain)轉(zhuǎn)發(fā)。

      以上兩種方式可以很容易實現(xiàn)將源域名定向到轉(zhuǎn)發(fā)服務(wù)器,這個過程是隱性的,在DNS范圍之外無法被檢測,缺點是其轉(zhuǎn)發(fā)僅限于域名部分,對于URL中的PATH部分無法改變。

      2.2 HTTP方式

      超文本傳輸協(xié)議是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。關(guān)于HTTP的RFC 2616[4],定義了HTTP協(xié)議中現(xiàn)今廣泛使用的一個版本—HTTP 1.1。設(shè)計HTTP最初目的是為了提供一種發(fā)布和接收HTML頁面方法。通過HTTP或者HTTPS協(xié)議請求的資源由統(tǒng)一資源標(biāo)識符(URI)來標(biāo)識。而使用HTTP協(xié)議中“狀態(tài)碼3xx”做重定向URI(轉(zhuǎn)發(fā)),是網(wǎng)頁瀏覽中一個常見功能。

      2.2.1 HTTP狀態(tài)碼3xx轉(zhuǎn)發(fā)方式

      HTTP狀態(tài)碼3xx轉(zhuǎn)發(fā)方式中,返回狀態(tài)碼以3開頭,表示瀏覽器將重定向到另一個地址。HTTP標(biāo)準(zhǔn)定義了幾種重定向狀態(tài)碼3xx定義如下:

      1) 300 Multiple Choices

      2) 301 moved permanently

      3) 302 found

      4) 303 see other

      5) 304 not modified

      6) 305 use proxy

      7) 307 temporary redirect

      下面根據(jù)不同3xx返回碼對URL轉(zhuǎn)發(fā)方式做一個詳述:

      1)300 Multiple Choices

      300含義:客戶請求的文檔可以在多個位置找到,這些位置已經(jīng)在返回Location內(nèi)列出。如果服務(wù)器提出優(yōu)先選擇,則應(yīng)該在Header的location指明。

      按照RFC2616中說明,在header中設(shè)置了location,但是只有IE、360、opera、Firefox可以跳轉(zhuǎn)到最終頁面,對于chrome瀏覽器,不會進行重定向。

      所以即使在header中的location中有指定,當(dāng)index中除了重定向還有別的內(nèi)容,但是有些瀏覽器不能實現(xiàn)重定向,不可以自動跳轉(zhuǎn)。所以URL如果使用300重定向會有部分瀏覽器無法轉(zhuǎn)發(fā)的問題。

      2)301moved permanently

      301為永久重定向即:請求網(wǎng)頁已永久移動到新位置。當(dāng)URL發(fā)生變化時,使用301代碼返回后,搜索引擎會保存新的URL,所以301對SEO[5]比較友好。

      RFC規(guī)定,新的URI在location頭中給出,瀏覽器應(yīng)該自動訪問新的URI。但同時響應(yīng)內(nèi)容中最好包含一個指定新地址的超鏈接,這樣,在不支持自動轉(zhuǎn)向的瀏覽器用戶也可以通過點擊超鏈接來重定向到新的URI,盡管目前還沒有測試到不支持跳轉(zhuǎn)的瀏覽器。

      3)302found

      是暫時重定向(temporary redirect),只有當(dāng)一個網(wǎng)站或網(wǎng)頁在24到48小時之內(nèi)臨時移到其它位置情況下才能使用該命令。

      在前些年不少Black Hat SEO曾廣泛應(yīng)用這項技術(shù)作弊,目前各大主要搜索引擎均加強了打擊力度,像Google前些年對Business.com以及近來對BMW德國網(wǎng)站懲罰。即使網(wǎng)站客觀上不是spam,也很容易被搜尋引擎誤判為spam而遭到懲罰。由于對SEO不友好,盡可能只在臨時重定向時使用。

      4)303see other

      與302不同之處:如果原來請求是POST,LOCATION指定的重定向目標(biāo)文檔應(yīng)該通過GET提取,所以會丟棄用戶通過POST方式發(fā)送數(shù)據(jù)。RFC中提到,許多HTTP/1.1版以前的瀏覽器不能正確理解303狀態(tài),如果需要考慮與這些瀏覽器之間的兼容性,302狀態(tài)碼可以替換303。

      5)304not modified

      如果客戶端有本地緩存,并發(fā)出一個條件性請求(一般是提供if-modified-since頭,表示客戶只需要指定日期后更新的文檔)。服務(wù)器告訴原緩沖文檔還可以繼續(xù)使用。如果網(wǎng)頁自請求者上次請求后沒有更新,則用304代碼告訴搜索引擎機器人,可節(jié)省帶寬和開銷。這個需要判斷是否發(fā)生了變化。

      6)305use proxy

      RFC規(guī)定,被請求資源必須通過指定代理才能被訪問。Location域中將給出指定代理所在的URI信息,接收者需要重復(fù)發(fā)送一個單獨請求,通過這個代理才能訪問相應(yīng)資源。只有原始服務(wù)器才能創(chuàng)建305響應(yīng)。但目前很多瀏覽器不支持。

      7)306switch proxy

      預(yù)留狀態(tài),未使用。

      8)307temporary redirect

      和303相同,對于非GET和HEAD請求不能自動重定向。出現(xiàn)307應(yīng)答時,瀏覽器可以繼續(xù)完成重定向的GET和POST請求。 但是307沒有被完全支持,opera不支持;Firefox,IE等瀏覽器可以重定向。

      除了使用HTTP狀態(tài)進行轉(zhuǎn)發(fā)之外,還有另外一些巧妙方法,甚至可能實現(xiàn)作弊或釣魚,如下面兩個:

      9)iFrame隱藏頁面

      這是一種隱藏地址欄URL顯示方法,即跳轉(zhuǎn)后地址欄顯示的是源轉(zhuǎn)發(fā)地址而非目的地址。相當(dāng)于做了一個頁面將目的頁面嵌入在里面。

      10)meta fresh

      這在2000年前比較流行,不過現(xiàn)在已很少見。具體實現(xiàn)是通過網(wǎng)頁中meta指令,在特定時間后重定向到新網(wǎng)頁。但是如果延遲時間太短(約5秒之內(nèi)),會被判斷為spam。

      2.2.2 HTTP轉(zhuǎn)發(fā)方式總結(jié)

      在HTTP協(xié)議中3xx響應(yīng)中,300、305、307都會存在瀏覽器不識別問題;303主流都支持(IE,火狐,360,opera,chrome),但可被302替代;目前301、302、304用的比較多。在使用上,304有特定應(yīng)用場景,即需要對目的資源是否與客戶端上次訪問內(nèi)容是否變更進行判斷。

      因此,以常用的301、302以及采用iFrame的隱藏方式做實驗,分析客戶端、服務(wù)端對地址識別情況:

      綜上,對HTTP轉(zhuǎn)發(fā)來說,301和302是常見、可用的HTTP轉(zhuǎn)發(fā)方式。

      3 URL轉(zhuǎn)發(fā)的實現(xiàn)

      現(xiàn)在根據(jù)一個常見互聯(lián)網(wǎng)服務(wù)提供商(Registrar)角度,實現(xiàn)從域名s.tld訪問到URL:http://www.d.com/p的一種方法:

      ⑴轉(zhuǎn)發(fā)設(shè)置中的源地址(s.tld),目的URL(http://www.d.com/p)需要在兩種服務(wù)器上設(shè)置生效,包括DNS解析服務(wù)器和URL轉(zhuǎn)發(fā)的服務(wù)器;

      ⑵互聯(lián)網(wǎng)用戶訪問http://s.tld時,會首先到DNS解析服務(wù)器上,查詢到s.tld的CNAME記錄,如redirect.tld;而URL轉(zhuǎn)發(fā)WEB服務(wù)器地址就是redirect.tld;這樣第3步將會訪問URL轉(zhuǎn)發(fā)服務(wù)器;

      ⑶用戶訪問URL轉(zhuǎn)發(fā)WEB服務(wù)器redirect.tld時,由URL轉(zhuǎn)發(fā)WEB服務(wù)器上的查詢服務(wù)(DB/MEM等方式)查詢用戶設(shè)置源地址和目的地址,然后HTTP訪問返回301/302,并指定目的http://www.d.com/p;

      ⑷用戶最終會訪問http://www.d.com/p;

      4 結(jié)束語

      互聯(lián)網(wǎng)用戶出于各種目的,需要域名或URL轉(zhuǎn)發(fā)業(yè)務(wù),DNS設(shè)置比較隱蔽,但是只能針對域名;而采用HTTP的URL方式轉(zhuǎn)發(fā),特別是301、302方式,普遍用在單個網(wǎng)頁服務(wù)內(nèi)部。而采用DNS+HTTP方式,配置靈活,入口設(shè)置方便,并且支持容量更大,因為DNS服務(wù)能力(UDP)比HTTP服務(wù)要強很多(TCP)。

      本文分析了DNS設(shè)置,以及HTTP轉(zhuǎn)發(fā)(URL Forwarding)請求的幾種不同方式,設(shè)計并實現(xiàn)了一種服務(wù)場景,可以為互聯(lián)網(wǎng)用戶提供高性能、易配置和服務(wù)靈活的URL轉(zhuǎn)發(fā)功能。

      [參考文獻]

      [1]T.Berners-Lee,L.Masinter,M.McCahill.Uniform Resource Locators(URL).Request for Comments:1738.December1994.

      [2]P.Mockapetris,DOMAIN NAMES-CONCEPTS AND FACILITIES,November1987.Request for Comments:1034,

      [3]S.Rose,W.Wijngaards,DNAME Redirection in the DNS,June 2012,ISSN:2070-1721,Request for Comments:6672

      [4]R.Fielding,J.Gettys,J.Mogul,H.Frystyk,L.Masinter,P.Leach,T.Berners-Lee,June1999,Hypertext Transfer Protocol--HTTP/1.1, Request for Comments:2616

      [5]"Bing–Partnering to help solve duplicate content issues–Webmaster Blog–Bing Community".www.bing.com.Retrieved October 30,2009.

      猜你喜歡
      重定向域名瀏覽器
      反瀏覽器指紋追蹤
      電子制作(2019年10期)2019-06-17 11:45:14
      解決安卓文件夾亂象
      重復(fù)壓裂裂縫重定向的措施研究
      如何購買WordPress網(wǎng)站域名及綁定域名
      4G偽基站的監(jiān)測定位與規(guī)避協(xié)同分析
      移動通信(2017年13期)2017-09-29 16:30:11
      環(huán)球瀏覽器
      再見,那些年我們嘲笑過的IE瀏覽器
      騰訊八百萬美元收購域名
      基于馬氏體重定向的鐵磁形狀記憶合金本構(gòu)理論分析
      頂級域名爭奪戰(zhàn):ICANN放出1930個通用頂級域名,申請者有上千家
      应用必备| 南京市| 汉中市| 溧水县| 班玛县| 当雄县| 张家界市| 浏阳市| 阜城县| 南城县| 政和县| 常熟市| 晋中市| 蛟河市| 乌兰浩特市| 武清区| 长治县| 琼海市| 民县| 鸡西市| 达日县| 钟祥市| 尚义县| 县级市| 洞头县| 五指山市| 夹江县| 运城市| 陇南市| 双鸭山市| 汝阳县| 射阳县| 临夏县| 平度市| 阆中市| 凌源市| 邵武市| 安平县| 新野县| 南昌市| 年辖:市辖区|