http --- gateways, tunnels, relay

Gateway:

// 作为某种翻译器使用,抽象出了一种能够到达的资源
// 应用程序可以请求网关来处理某条请求.
// 在HTTP和其他协议及其应用程序之间起到接口作用

FTP URL of the HTTP request:

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 / *: server-side Web Gateway:

// 请求流入原始服务器时,服务器端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: server security gateway && HTTPS / HTTP: Client Security Acceleration gateways:

// 客户端
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请求.

Application server:

// 将目标服务器与网关结合在一个服务器中实现
// 是服务器端网关
// 与客户端通过HTTP进行通信,并与服务器端的应用程序相连

// 客户端通过HTTP连接到应用程序服务器
// 应用服务器将请求通过一个网关应用编程接口(API,Application Programming Interface)发送给运行在服务器上的应用程序 

Common Gateway Interface CGI (Common Gateway Interface):

// 是一个标准接口集,Web服务器可以用它来装载程序以响应对特定URL的HTTP请求
// 并收集程序的输出数据,将其放在HTTP响应中回送

web tunnel:

// 通过这种方式,可以让HTTP应用程序访问使用非HTTP协议的应用程序

Establish an HTTP tunneling with a CONNECT:

// 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

relay:

HTTP中继(relay)是没有完全遵循HTTP规范的简单HTTP代理.中继复测处理HTTP中建立连接的部分,然后对字节进行盲转发

Reference "HTTP Definitive Guide," Chapter 8

Guess you like

Origin blog.csdn.net/piano9425/article/details/92800106