HTTP系列(七)—— 网关

HTTP 刚诞生的年代,人们只是使用它来发送静态的在线文档,但是随着用户需求的驱动,静态的资源已经无法满足人们的需求了,人们更加期望的是在 Web 上发布复杂的资源。

所以,为了解决这个问题,就提出了网关的概念。

什么是网关

网关,抽象出了一种能够到达资源的方法,它是资源和应用程序之间的粘合剂。

应用程序可以通过 HTTP 请求网关来处理某条请求,网关可以提供一条响应。不仅如此,网关还可以向数据库发送查询语句,或者生成动态的内容。

那么,从上面的描述来看,网关既能处理请求,又能返回响应,这不是服务器的工作吗?

但是,网关具有一种转换协议的功能,看下面的示例:

 

 

 

(示例来源于 《HTTP权威指南》)

在 a 图中,网关收到了对 FTP URLHTTP 请求,然后网关打开 FTP 连接并向 FTP 服务器发布指令,最后将文档返回给客户端。这里就是将客户端发来的 HTTP 请求转换为 FTP 发送给服务器了。

在 b 图中,网关通过 SSL 收到了一条加密的 Web 请求,网关会对请求进行解密(前提是网关需要安装协议证书),然后向目标服务器转发一条普通的 HTTP 请求。这里就是将 HTTPS 转换为普通的 HTTP ,从而达到安全加速器的效果。

在 c 图中,网关通过应用程序服务器网关API,将 HTTP 客户端连接到服务器端的应用程序上。

注:在上图中,出现了 HTTP/FTP 这样的标记,其实这个就是对网关的描述:<客户端协议>/<服务器端协议>