網關:
// 作為某種翻譯器使用,抽象出了一種能夠到達的資源
// 應用程序可以請求網關來處理某條請求.
// 在HTTP和其他協議及其應用程序之間起到接口作用
FTP URL的HTTP請求:
GET ftp://ftp.irs.gov/pub/00-index.txt HTTP/1.0
Host: ftp.irs.gov
User-agent: SuperBrowser 4.2// 若顯式的設置了HTTP/FTP網關(例如配置瀏覽器將gw1.joes-handware.com作為所有FTP URL的HTTP/FTP網關).
// 則該請求會通過網關訪問到gw1.joes-hardware.com
// 其他HTTP請求將不受影響
HTTP/*:服務器端Web網關:
// 請求流入原始服務器時,服務器端Web網關會將客戶端HTTP請求轉換為其他協議
// 例如:網關收到了如下的一條對FTP資源的HTTP請求:GET ftp://ftp.irs.gov/pub/00-index.txt HTTP/1.0
Host: ftp.irs.gov
User-agent: SuperBrowser 4.2// 網關會打開一條到原始服務器FTP端口(端口號:21)的FTP連接,并做如下事情:
USER anonmous
PASS joe
CWD /pub
TYPE A
MDTM 00-index.txt
PASV
RETR 00-index.txt// 1.發送USER和PASS命令登錄到服務器上去;
// 2.發布CWD命令,轉移到服務器合適的目錄中去
// 3.將下載類型設置為ASCII;
// 4.MDTM獲取文檔的最好修改時間
// 5.用PASV告訴服務器將有被動數據獲取請求到達
// 6.用RETR請求進行對象獲取
// 7.打開到FTP服務器的數據連接,服務器端口由控制信道返回;一旦數據信道打開了,就將對象內容回送給網關
HTTP/HTTPS:服務器安全網關 && HTTPS/HTTP:客戶端安全加速網關:
// 客戶端
GET http://www.cnn.com/ HTTP/1.0
Host: www.cnn.com
User-agent: Superbrowser 4.2// 通過HTTP/HTTPS輸入安全網關轉換為如下
mdsnrt734tngfd/p0f92piub5.lod9fuo8w34b4/;p-90[g9yk,8U|t6y6/ $!&9890G&*&98...// 一個組織可以通過網關(HTTP/HTTPS輸入安全網關)對所有的輸入Web請求加密,以提供額外的隱私和安全性保護
// 到了受保護的內部LAN.HTTPS/HTTP安全加速網關將對其進行解密,并向Web服務器發送普通的HTTP請求.
應用程序服務器:
// 將目標服務器與網關結合在一個服務器中實現
// 是服務器端網關
// 與客戶端通過HTTP進行通信,并與服務器端的應用程序相連// 客戶端通過HTTP連接到應用程序服務器
// 應用服務器將請求通過一個網關應用編程接口(API,Application Programming Interface)發送給運行在服務器上的應用程序
通用網關接口CGI(Common Gateway Interface):
// 是一個標準接口集,Web服務器可以用它來裝載程序以響應對特定URL的HTTP請求
// 并收集程序的輸出數據,將其放在HTTP響應中回送
web隧道:
// 通過這種方式,可以讓HTTP應用程序訪問使用非HTTP協議的應用程序
用CONNECT建立HTTP隧道:
// Web隧道是用HTTP的CONNECT方法建立起來的.
// CONNECT方法請求隧道網關創建一條到達任意目的服務器和端口的TCP連接,并對客戶端和服務器間的后繼數據進行盲轉發// CONNECT請求
CONNECT home.netscape.com:443 HTTP/1.0
User-agent: Mozilla/ 4.0// CONNECT響應
HTTP/1.0 200 Connection Established
Proxy-agent: Netscape-Proxy/1.1
中繼:
HTTP中繼(relay)是沒有完全遵循HTTP規范的簡單HTTP代理.中繼復測處理HTTP中建立連接的部分,然后對字節進行盲轉發
參考《HTTP權威指南》第8章