HTTP基础之十(网关Gateway,隧道tunnel,中继器Relays)

网关(Gateway)

网关的出现?为了在web上放置更多类型的资源,例如数据库资源,动态生成HTML。浏览器发起的URL请求需要找到对应的资源来返回,而这个资源不仅仅是静态的图片或文件,这个中间(应用程序和资源之间)需要一个翻译——网关。网关可以访问数据库获取数据,动态生成内容返回给客户端。网关执行的过程:一个请求进入,然后一个响应返回。有时网关可以自动转换协议,客户端不需要知道!

 

几种类型网关(协议网关和资源网关)

 

CGI(Common Gateway Interface)

CGI是web服务器提供一套标准化的接口,这些接口用来调用程序响应HTTP请求,并且收集程序的响应发送给客户端。CGI被广泛使用为服务器扩展,被用来生成动态HTML,查询数据库等。由于CGI程序跟服务器是分开的,所以CGI可以被任何语言实现,包括C,Perl等,由于CGI的简便,几乎所有的HTTP服务器都支持。CGI进程对用户来说是不可见的,用户只是做了正常的请求并得到响应。由于CGI和服务器的分割,导致产生很多CGI进程,从而消耗了服务器的性能。为了解决这个问题,新的接口Fast CGI产生了,这是一个最小化的CGI接口,消除了性能问题,不再是每个请求生成一个进程了。

 

服务器扩展API

CGI提供一种非常干净的方式来和HTTP服务器交互,当然我们有时需要直接介入服务器的处理过程。这时候就需要使用服务器的扩展API来实现。应用程序之间常常也需要交互,基于SOAP协议的webservice。

 

隧道Tunnels

HTTP的另外一种应用,允许使用HTTP连接发送非HTTP协议的交互,在HTTP上捎带其它协议,最常见的使用就是在HTTP连接里面嵌入非HTTP的传输,这样能通过防火墙,而且只在web里面传输。web隧道最开始是为了传输SSL,防止防火墙拦截。现在的HTTPS协议直接连接客户端到服务器了,服务器防火墙会开放443端口。

 

中继器Relays:简单的HTTP代理服务器

作者:张雪飞
出处:https://zhangxuefei.site/p/1087
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

发表评论

电子邮件地址不会被公开。 必填项已用*标注