理解之通用的重定向方法

2022-09-16 05:24:10 字數 1779 閱讀 5576

重定向 - http重定向:

工作方式:最初,http請求先到第一台web伺服器,這台伺服器會選擇一台「最佳」的web伺服器為其提供內容。

第一台web伺服器會向客戶端傳送一條到指定伺服器的http重定向。客戶端會將請求重新傳送到選中的伺服器上;

重新路由的基礎:選擇最短路徑時可用的選項很多,包括輪轉(round-robin)負載均衡和最小化時延等;

侷限性:可能會很慢--每個事物都包含了附加的重定向步驟。而且,第一台伺服器一定要能夠處理請求負載。

工作過程:客戶端傳送一條請求 -> 伺服器端返回乙個帶有狀態碼302的重定向報文 -> 客戶端用伺服器端傳送

的重定向url重新傳送一條請求 -> 新的伺服器返回狀態碼200的正常報文。

重定向 - dns 重定向:

工作方式:dns伺服器決定在url的主機名中返回多個ip位址中的哪乙個;

重新路由的基礎:選擇最短路徑時可用的選項很多,包括輪轉(round-robin)負載均衡和最小化時延等;

侷限性:需要配置dns伺服器。

重定向-任播定址:

工作方式:幾台伺服器使用相同的ip位址。每台伺服器都會偽裝成乙個骨幹路由器。其他路由器會將

共享ip位址分組傳送給最近的伺服器(認為它們將分組傳送給最近的路由器)

重新路由的基礎:路由器有自建的最短路徑路由功能

侷限性:需要擁有/配置路由器。有位址衝突的風險。如果路由變化了,與已建立的tcp連線相關的分組

會被傳送到其他的伺服器,可能會使tcp連線斷裂;

注意事項:任播定址仍然是項實驗性技術。要使用分布式任播技術,伺服器就必須"使用路由器語言",

而且路由器必須能夠處理可能出現的位址衝突,因為網際網路位址基本上都是假定一台伺服器只有乙個位址的。

(如果沒有正確地實現,可能會造成很嚴重的"路由洩漏"問題。)

重定向-ip mac**:

工作方式:交換機或路由器這樣的網元會讀取分組的目的位址。如果應該將分組重定向,交換機會將

伺服器或**的目標mac位址賦予分組;

重新路由的基礎:節省頻寬,提高qos(quality of service,服務質量).負載均衡。

侷限性:伺服器或**的跳距必須是1.

工作過程:因為在乙太網中,http報文都是以攜帶的位址的資料分組的形式傳送的。這個地方就有四層

位址之說:第一層位址(客戶端的mac位址,主機到網路層)、第二層位址(通常是交換機後台hub關注的mac地

址,網路互連層),第三層位址(閘道器以及埠,傳輸層),四層則是源ip位址、目的ip位址以及tcp埠號組

成,應用層。支援mac位址**的第四層交換機通常會將請求**給幾個**快取,並在它們之間平衡負載。

另外,由於mac位址**只是點對點的,所以伺服器或**只能位於離交換機一跳遠的地方。總結來說,二層

基於mac位址**資料幀,三層基於ip位址**報文。

重定向 - ip位址**:

工作方式:第四層交換機會評估分組的目的埠並將重定向分組的ip位址改成**或映象伺服器的ip位址;

重新路由的基礎:節省頻寬,提高qos。負載均衡。

侷限性:伺服器或**可能看不到真正的客戶端ip位址。

工作過程:在ip位址**中,交換機或其他第四層裝置會檢測輸入分組中的tcp/ip位址,並通過修改目的ip

位址(不是目的的mac位址),對分組進行相應的**,與mac**相比,這麼做的優點是目標伺服器不需要位於

一跳遠的地方了。

附:

理解Linux重定向

1.linux中執行open操作,開啟乙個檔案時,會在程序檔案描述表中新新增一項 檔案描述符id 指向核心檔案描述表項的指標 檔案描述符表 fd0 0 p0 檔案表0 vnode0 fd1 1 p1 檔案表1 vnode1 fd2 2 p2 2.重定向時,直接修改指向核心檔案描述表項的指標。dup,...

Zend framework重定向的方法

zend framework重定向的方法有三種。render,forward,redirect。它們各自的用法是什麼樣子的呢?有什麼區別呢?一.render render是用來調查看用的,不會呼叫action內部 this render upload 這句話的意思是 二.forward forwar...

理解命令輸出重定向

shell中可能經常能看到 dev null 2 1 命令的結果可以通過 的形式來定義輸出 分解這個組合 dev null 2 1 為五部分。1 代表重定向到 例如 echo 123 home 123.txt 2 dev null 代表空裝置檔案 3 2 表示stderr標準錯誤 4 表示等同於的意...