网关类型:服务器协议转换器、服务端安全网关、客户端安全网关以及应用程序服务器
HTTP/*: 服务端Web网关
请求流入到原始服务器,服务器Web网关会将客户端HTTP请求转换为其他协议
HTTP/HTTPS:服务器端安全网关
一个组织可以通过网关对所有的输入Web请求加密,以提供额外的隐私和安全性保护,客户端可以用
普通的HTTP浏览web内容,单网关会自动加密用户的对话
HTTPS/HTTP客户端安全加速器网关
HTTPS/HTTP网关位于Web服务器之前,通常可以作为不可见的拦截网关或者反向代理使用,他们接
收安全的HTTPS流量,对安全流量进行解密,并向Web服务器发送普通的HTTP请求。
隧道
Web隧道,这种方式可以通过HTTP应用程序访问使用非HTTP协议的应用程序。Web隧道允许用户通过
非HTTP连接发送非HTTP流量,这样就可以在HTTP上捎带其他协议数据了。使用Web隧道最常见的原因
就是要在HTTP连接中嵌入非HTTP流量,这样,这类流量就可以穿过只允许Web流量通过的防火墙了。
用CONNECT建立HTTP隧道
Web隧道是用HTTP的CONNECT方法建立起来的。CONNECT并不是HTTP/1.1核心规范的一部分,但却是
一种得到广泛应用的扩展。CONNECT方法请求隧道网关创建一条到达任意目的服务器和端口的TCP连接,
并对客户端和服务器之间的后继数据进行盲转发。通过CONNECT方法可以与使用任意协议的任意服务器
建立TCP连接。
CONNECT请求
除了起始行之外语法与其余HTTP方法类似
1
2 CONNECT host.netspace.com:443 http/1.0
User-agent: Mozilla/4.0
CONNECT响应
发送了请求之后,客户端会等待来自网关的响应,和普通HTTP报文一样,响应码200表示成功,按照
惯例,响应中的响应短语通常被设置为”Connection Established”
1
2 HTTP/1.0 200 Connection Established
Proxy-agent: Netscape-Proxy/1.1与普通HTTP响应不同,这个响应并不需要包含Content-Type首部。此时连接只是对原始字节进行
转接,不再是报文的承载者,所以不需要使用内容类型了。
中继
HTTP中继是没有完全遵循HTTP规范的简单HTTP代理。中继负责处理HTTP中建立连接的部分,然后
对字节进行盲转发。某些简单中继实现中存在一个更常见的问题是,由于它们无法正确处理Connection
首部,所以有潜在的挂起keep-alive连接的可能。