今天主要總結關於閘道器、隧道及中繼的內容。
首先介紹一下閘道器是什麼?
閘道器可以作為某種翻譯器使用,它抽象出了一種能夠到達資源的方法。閘道器是應用程式和資源的粘合劑。
web閘道器在一側使用http協議,在另一側使用另一種協議。
《客戶端協議》/《伺服器端協議》
比如:
伺服器端閘道器通過http與客戶端對話,通過其他協議與伺服器通訊(http/*)
客戶端閘道器通過與其他協議與客戶端對話,通過http與伺服器通訊(*/http)
http/https:伺服器端安全閘道器:
乙個組織可以通過閘道器對所有的輸入web請求加密,以提高額外的隱私和安全性保護。客戶端可以用普通的http瀏覽web內容,但閘道器會自動加密使用者的對話。
https/http客戶端安全加速器閘道器:
這些https/http閘道器位於web伺服器之前,通常作為不可見的攔截閘道器或反向**使用,它們接收安全的https流量,對安全流量進行解密,並向web伺服器傳送普通的http請求。這些閘道器中通常都包含專用的解密硬體,以比原始伺服器有效的多的方式解密安全流量,以減輕原始伺服器的負荷。這些閘道器在閘道器和原始伺服器之間傳送的是未加密的流量,所以確保閘道器和原始伺服器之間的網路是安全的。
下面講資源閘道器?
最常見的閘道器,應用程式伺服器,會將目標伺服器與閘道器結合在乙個伺服器中實現。應用程式伺服器是伺服器端閘道器,與客戶端通過http進行通訊,並與伺服器端的應用程式相連。
1.收到客戶端a的請求,根據uri將其通過api傳送給乙個數碼攝像機應用程式。將得到的繫結到一條http響應報文中,再回送給客戶端。在客戶端的瀏覽器中顯示。
2.客戶端b的uri請求的是乙個電子商務應用程式。客戶端b的請求是通過伺服器閘道器api傳送給電子商務軟體的,結果會被回送給瀏覽器。電子商務軟體與客戶端進行互動,引導使用者通過一系列html頁面來完成購物。
第乙個流行的應用程式閘道器api就是通過閘道器介面(cgi)。cgi是乙個標準介面集,web伺服器可以用它來裝載程式以響應對特定url的http請求,並收集程式的輸出資料,將其放在http響應中回送。
下面將web服務?
web服務可以用xml通過soap來交換資訊。xml提供了一種建立資料物件的定製資訊,並對其進行解釋的方法。soap(簡單物件訪問協議)是向http報文中新增xml資訊的標準方式。
隧道?web隧道可以通過http應用程式訪問使用非http協議的應用程式。web隧道允許使用者通過http連線傳送非http流量,這樣就可以再http上捎帶其他協議資料。
如何用connect建立http隧道?
connect方法請求隧道閘道器建立一條到達任意目的伺服器和埠的tcp連線,並對客戶端和伺服器之間的後繼資料進行盲**。
1.connect請求
除了起始行之外,connect的語法跟其他http方法類似。乙個後面跟著冒號和埠號的主機名取代了請求uri。主機和埠都必須指定。
2.connect響應
和普通http報文一樣,響應碼200表示成功。響應中的原因短語通常被設定為「connection estabilished」。與普通http響應不同,這個響應不需要包含content-type首部,此時連線只是對原始位元組進行轉接,不再是報文的承載者,所以不需要使用內容型別了。
接下來講資料隧道,定時及連線管理?
管道化資料對閘道器是不透明的,所以閘道器不能對分組的順序和分組流作任何假設。一旦隧道建立起來了,資料就可以在任意時間流向任意方向了。
作為一種效能優化方法,允許客戶端在傳送了connect請求之後,接收響應之前,傳送隧道資料。尤其是,閘道器不能假設網路i/o請求只會返回首部資料,閘道器必須確保在連線準備就緒時,將與首部一同讀進來的資料傳送給伺服器。在請求之後以管道方式傳送資料的客戶端,如果發現回送的響應是認證請求,或者其他非200但不致命的錯誤狀態,就必須做好重發請求資料的準備。
如果在任意時刻,隧道的任意乙個端點斷開了連線,那個端點發出的所有未傳輸資料都會被傳送給另乙個端點,之後,到另乙個端點的連線也會被**終止。如果還有資料要傳輸給關閉連線的端點,資料會被丟棄。
ssl隧道?
最初開發web隧道是為了通過防火牆來傳輸加密的ssl流量。很多組織都會將所有流量通過分組過濾路由器和**伺服器以隧道方式傳輸,以提公升安全性。但有些協議,比如加密ssl,其資訊是加密的,無法通過傳統的**伺服器**。隧道會通過一條http連線來傳輸ssl流量,以穿過埠80的http防火牆。
ssl隧道與http/https閘道器的對比?
可以像其他協議一樣,對https協議(ssl上的http)進行閘道器操作:由閘道器(而不是客戶端)初始化與遠端https伺服器的ssl會話,然後代表客戶端執行https事務。響應會由**接收並解密,然後通過(不安全的)http傳送給客戶端,這是閘道器處理ftp的方式,但這種方式有幾種缺點:
1.客戶端到閘道器之間的連線時普通的非安全的http
2.儘管**是已認證主體,但客戶端無法對遠端伺服器執行ssl客戶端認證(基於x509證書的認證)
注意,對於ssl隧道機制來說,無需在**中實現ssl。ssl會話是建立在產生請求的客戶端和目的(安全的)web伺服器之間的,中間的**伺服器只是將加密資料和經過隧道傳輸,並不會在安全事務中扮演其他的角色。
隧道認證:
隧道的安全性考慮:隧道閘道器無法驗證目前使用的協議是否就是它原本打算經過隧道傳輸的協議。因此,惡意使用者會通過隧道做些事。
中繼?http中繼是沒有完全遵循http規範的簡單http**。中繼負責處理http中建立連線的部分,然後對位元組進行盲**。
之前介紹過的盲中繼就是實現中存在的乙個常見問題。
HTTP協議 HTTP首部總結
首部和方法配合工作,共同決定了客戶端和伺服器能做什麼事情。http協議的請求和響應報文中必定含有http首部,首部內容為客戶端和伺服器分別處理請求和響應提供所需要的資訊,對客戶端使用者來說,這些資訊中的大部分內容都無須親自檢視,因此平時在使用web的過程中感受不到它。http請求報文由方法 uri ...
個人總結六條SEO簡單優化執行方案
一 title和meta的優化 頁面的title和meta與搜尋引擎中搜尋結果的表現是一一對應的,如果你 頁面沒有填寫meta中的description內容,那麼搜尋引擎會根據抓取的頁面的文字資訊來顯示,當然一些flash類的網頁是不可能抓取到這些資訊的。一般來說,對於title和meta內容的撰寫...
陣列去重個人總結的六種方式
1 1.利用es6的set函式 let arr 1,2,3,4,5,3,5,6,2 let a new set arr let b a console.log b 1,2,3,4,5,6 1 2.利用陣列的過濾方式 let arr 1,2,3,4,5,3,5,6,2 let b arr.filter...