張龍 趙廣超 朱林 劉強(qiáng) 張文騫
摘要:在網(wǎng)站升級(jí)改造,網(wǎng)站網(wǎng)址變更,而用戶訪問(wèn)網(wǎng)站的地址保持不變時(shí),需要對(duì)網(wǎng)站地址進(jìn)行跳轉(zhuǎn)處理,文章主要介紹了網(wǎng)址跳轉(zhuǎn)的幾種常見(jiàn)方法在網(wǎng)絡(luò)中的實(shí)際應(yīng)用及分析測(cè)試。
關(guān)鍵詞:網(wǎng)址跳轉(zhuǎn);重定向;反向代理;HTML
中圖分類號(hào):TP311? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)04-0046-02
1 引言
網(wǎng)站建設(shè)完成后,網(wǎng)址變更、域名改變等情況時(shí)有發(fā)生,用戶大多熟知舊網(wǎng)址,為能夠提高用戶體驗(yàn),經(jīng)常用網(wǎng)址跳轉(zhuǎn)來(lái)處理。網(wǎng)站原IP地址為x.x.3.8,網(wǎng)站變更后的IP地址為x.x.6.50.需要實(shí)現(xiàn)在用戶輸入原IP地址時(shí),自動(dòng)跳轉(zhuǎn)到新網(wǎng)站并不影響用戶的上網(wǎng)體驗(yàn)。
2 網(wǎng)址跳轉(zhuǎn)介紹
網(wǎng)址跳轉(zhuǎn),就是通過(guò)一個(gè)網(wǎng)址跳轉(zhuǎn)到另一個(gè)網(wǎng)址中去,比如需要在輸入A網(wǎng)址的情況下,打開(kāi)B網(wǎng)址的網(wǎng)站,那么A網(wǎng)址到B網(wǎng)址之間的跳轉(zhuǎn)就是網(wǎng)址跳轉(zhuǎn)(此方法也常用于網(wǎng)站的404頁(yè)面)。網(wǎng)址跳轉(zhuǎn)的主要作用是當(dāng)域名或網(wǎng)址變更時(shí),可以使用這種方式將用戶引到正確的網(wǎng)頁(yè)上去。網(wǎng)址跳轉(zhuǎn)的實(shí)現(xiàn)有很多種方法,結(jié)合實(shí)際工作,主要整理了以下三種常見(jiàn)網(wǎng)址跳轉(zhuǎn)方法。
2.1 HTML頁(yè)面代碼跳轉(zhuǎn)
在HTML中,通常使用meta標(biāo)簽和Javascript語(yǔ)言兩種方法來(lái)實(shí)現(xiàn)網(wǎng)址跳轉(zhuǎn)。使用meta標(biāo)簽進(jìn)行頁(yè)面跳轉(zhuǎn)較為簡(jiǎn)單,此方法可以定義頁(yè)面跳轉(zhuǎn)的時(shí)間以及其他參數(shù);使用Javascript語(yǔ)言更加靈活,可以結(jié)合更多的其他功能,但可能因?yàn)闉g覽器的不同產(chǎn)生不一樣的效果,對(duì)用戶使用造成不便[1]。
2.2 網(wǎng)址重定向
URL重定向(URL redirection,或稱網(wǎng)址重定向或網(wǎng)域名稱轉(zhuǎn)址)根據(jù)HTTP Response Code不同主要分為301(永久重定向)和302(暫時(shí)重定向)兩種。其中永久重定向技術(shù)又稱為301跳轉(zhuǎn),指的是終端用戶向服務(wù)器發(fā)送請(qǐng)求后服務(wù)器控制返回HTTP報(bào)文中狀態(tài)碼,表示將本頁(yè)面永久轉(zhuǎn)移到其他頁(yè)面。網(wǎng)站采用301重定向技術(shù)對(duì)搜索引擎較為友好,一般場(chǎng)景下的網(wǎng)站轉(zhuǎn)移建議采用301重定向技術(shù)。
在基于Windows Server的服務(wù)器上,可以通過(guò)配置IIS(Internet Information System)實(shí)現(xiàn)301重定向;在基于Unix的系統(tǒng)上主要采用Apache或者Nginx實(shí)現(xiàn)HTTP網(wǎng)站服務(wù),通過(guò)修改配置文件的方法可以實(shí)現(xiàn)301重定向跳轉(zhuǎn)。
302重定向技術(shù)在實(shí)現(xiàn)上與301重定向技術(shù)相似,只是在應(yīng)用場(chǎng)景上302重定向技術(shù)主要適用于網(wǎng)站暫時(shí)重定向到其他頁(yè)面。由于302重定向技術(shù)對(duì)搜索引擎不友好,可能造成干擾搜索引擎對(duì)收錄網(wǎng)站排名的情況,同時(shí)302重定向在安全性上存在缺陷,容易造成URL劫持攻擊。
2.3 反向代理
代理技術(shù)主要分為正向代理、反向代理和透明代理,其中正向代理主要用于突破訪問(wèn)限制、提高訪問(wèn)速度和隱藏客戶端IP地址等,反向代理主要用于隱藏服務(wù)器IP、負(fù)載均衡等,透明代理主要用于用戶行為監(jiān)控等功能。
反向代理在實(shí)現(xiàn)網(wǎng)站跳轉(zhuǎn)功能方面,其主要原理如圖1所示,代理服務(wù)器在用戶與網(wǎng)站服務(wù)器通信中間發(fā)揮作用,在用戶看來(lái)代理服務(wù)器即為網(wǎng)站服務(wù)器,代理服務(wù)器可以根據(jù)使用者指定的策略從不同的網(wǎng)站服務(wù)器取得內(nèi)容[2]。在Windows和類Unix系統(tǒng)中可以通過(guò)修改WEB服務(wù)器的配置文件實(shí)現(xiàn)反向代理功能[3]。
3 網(wǎng)址跳轉(zhuǎn)在網(wǎng)絡(luò)中的實(shí)現(xiàn)
3.1 HTML頁(yè)面跳轉(zhuǎn)的實(shí)現(xiàn)
在Windows或Linux系統(tǒng)中,可通過(guò)修改網(wǎng)站主目錄下index.html文件內(nèi)容來(lái)實(shí)現(xiàn),如下圖2中第5行代碼所示。
meta元素用于指定網(wǎng)頁(yè)的描述,并提供HTML文檔的元數(shù)據(jù),不會(huì)顯示在客戶端,但是會(huì)被瀏覽器解析。http-equiv表示把content屬性關(guān)聯(lián)到HTTP頭部,其中http-equiv="refresh"表示自動(dòng)刷新,content=0表示設(shè)置時(shí)間為0秒,即不用等待直接跳轉(zhuǎn)到新頁(yè)面,url=http://x.x.6.50表示跳轉(zhuǎn)到的目的網(wǎng)址。
3.2 網(wǎng)址重定向方法的實(shí)現(xiàn)
3.2.1 Windows下網(wǎng)址重定向的實(shí)現(xiàn)
對(duì)于使用Windows操作系統(tǒng)的用戶,可以使用系統(tǒng)中IIS管理單元配置301重定向功能。
1)從計(jì)算機(jī)管理打開(kāi)IIS管理單元,進(jìn)入需要配置的站點(diǎn),點(diǎn)擊右鍵在選擇快捷菜單中的選擇“屬性”命令。
2)在彈出對(duì)話框中,找到“鏈接到資源時(shí)的內(nèi)容來(lái)源”,選擇“重定向到URL”,在下面的文本框中輸入要跳轉(zhuǎn)到的頁(yè)面。
3)同時(shí)將“客戶端定向到”下面的“資源的永久重定向”復(fù)選框中。
4)點(diǎn)擊“應(yīng)用”按鈕。
3.2.2 Linux下網(wǎng)址重定向的實(shí)現(xiàn)
使用Linux的用戶可以使用如下方法實(shí)現(xiàn)網(wǎng)址重定向。在Linux下修改Nginx的配置文件,一般位于“/usr/local/nginx/conf/nginx.conf”的路徑。[4]
3.3 反向代理方法的實(shí)現(xiàn)
在Nginx服務(wù)器上配置內(nèi)置自帶 proxy_pass模塊實(shí)現(xiàn)反向代理功能,配置文件模板如下[5]。
4 網(wǎng)址跳轉(zhuǎn)不同方法的效果分析及測(cè)試
為了能夠更好地提升用戶體驗(yàn),選擇一種傳輸效率最高并且對(duì)用戶影響最小的方法,通過(guò)抓取數(shù)據(jù)包傳輸過(guò)程,對(duì)以上三種方法進(jìn)行了測(cè)試和效果分析。為了使測(cè)試效果更加真實(shí),部署了一臺(tái)虛擬化服務(wù)器,操作系統(tǒng)(Linux)和HTTP服務(wù)軟件(Nginx)與網(wǎng)站主頁(yè)服務(wù)器一致,IP地址為x.x.3.15。在該服務(wù)器上依次做了這三種網(wǎng)址跳轉(zhuǎn)測(cè)試,在客戶端x.x.6.24的命令提示符下運(yùn)行Wireshark命令行軟件對(duì)三種方法的網(wǎng)站訪問(wèn)速度分別進(jìn)行抓包分析,通過(guò)進(jìn)行多次測(cè)試,取平均值,如圖5、圖6、圖7所示:
從測(cè)試結(jié)果圖中可以發(fā)現(xiàn),HTML頁(yè)面跳轉(zhuǎn)的方法傳輸20個(gè)左右的數(shù)據(jù)包,網(wǎng)址重定向和反向代理方法傳輸10個(gè)左右數(shù)據(jù)包。由此可見(jiàn),HTML頁(yè)面跳轉(zhuǎn)方法的效率相對(duì)較低,網(wǎng)址重定向和反向代理兩種方法相差無(wú)幾。由于反向代理的方法更適合擁有多個(gè)WEB服務(wù)器或者反向代理服務(wù)器的大型網(wǎng)站及數(shù)據(jù)中心,主要用于降低原始WEB服務(wù)器的負(fù)載,如百度網(wǎng)站等,而文中的網(wǎng)站只需要一臺(tái)服務(wù)器即可,綜合考慮選擇網(wǎng)址重定向的方法進(jìn)行網(wǎng)址轉(zhuǎn)發(fā)。
5 結(jié)束語(yǔ)
針對(duì)網(wǎng)址變更本文對(duì)網(wǎng)址跳轉(zhuǎn)的三種方法進(jìn)行了測(cè)試及效果分析,經(jīng)過(guò)一系列的測(cè)試分析,選擇最優(yōu)的方案網(wǎng)址重定向進(jìn)行網(wǎng)址跳轉(zhuǎn),主要采用Linux下的網(wǎng)址重定向方法作為主要工具,Windows下IIS中的重定向方法作為冷備份,確保遇到網(wǎng)絡(luò)故障時(shí)能夠快速響應(yīng),忽略網(wǎng)址跳轉(zhuǎn)的影響。該方法有效降低了網(wǎng)址變更對(duì)用戶的影響,減少了不必要的工作量,使網(wǎng)站訪問(wèn)效率最大化。
參考文獻(xiàn):
[1] 明日科技.HTML5從入門到精通[M].3版.北京:清華大學(xué)出版社,2019.
[2] 王力,湯永全.Nginx實(shí)戰(zhàn):基于Lua語(yǔ)言的配置、開(kāi)發(fā)與架構(gòu)詳解[M].北京:電子工業(yè)出版社,2019.
[3] 苗澤.Nginx高性能Web服務(wù)器詳解[M].北京:電子工業(yè)出版社,2013.
[4]? Ngnix中文文檔.http://www.ngnix.cn/doc/standard/httpproxy.html
[5] 劉遄.Linux就該這么學(xué)[M].北京:人民郵電出版社,2017.
收稿日期:2021-08-26
作者簡(jiǎn)介:張龍(1988—),男,山東濰坊人,本科,主要研究方向?yàn)榫W(wǎng)絡(luò)運(yùn)維與管理;趙廣超(1983—),男,河南舞鋼人,碩士,工程師,主要方向?yàn)榫W(wǎng)絡(luò)運(yùn)維與管理;朱林(1985—),男,河南洛陽(yáng)人,本科,工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)運(yùn)維與管理;劉強(qiáng)(1993—),男,新疆阿勒泰人,本科,助理工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)安全;張文騫(1998—),男,河南南陽(yáng)人,本科,助理工程師,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。