Page 245 - HTTP权威指南
P. 245
隧道位于客户端和网关之间
普通的SSL连接
客户端 网关(隧 orders.joes-hardware.com
(a)发送CONNECT请求 道端点)
CONNECT orders.joes-hardware.com:443 HTTP/1.0
User-agent: SuperBrowser4.2
(d)返回HTTP连接就绪报文 (b)打开到端口443的TCP连接
HTTP/1.0 200 Connection established (c)连接已建立
(e)此时,建立起了原始数据的任意、
双向通信,直到连接关闭为止。
mdsnrt734tngfd/p0f92piub5.
lod9fuo8w34b4/;p-90[g9yk,8
U|t6y6/ $!&9890G&*&98...
mdsnrt734tngfd/p0f92piub5.
lod9fuo8w34b4/;p-90[g9yk,8
U|t6y6/ $!&9890G&*&98...
gal1304-*&hsgd
gal1304-*&hsgd
207 图 8-10 用 CONNECT 建立一条 SSL 隧道
图 8-10 中的例子描述了一条 SSL 隧道,其中的 SSL 流量是在一条 HTTP 连接上
发送的,但是通过 CONNECT 方法可以与使用任意协议的任意服务器建立 TCP 连
接的。
1. CONNECT请求
除了起始行之外,CONNECT 的语法与其他 HTTP 方法类似。一个后面跟着冒号和
端口号的主机名取代了请求 URI。主机和端口都必须指定:
CONNECT home.netscape.com:443 HTTP/1.0
User-agent: Mozilla/4.0
和其他 HTTP 报文一样,起始行之后,有零个或多个 HTTP 请求首部字段。这些行
照例以 CRLF 结尾,首部列表以一个仅有 CRLF 的空行结束。
218 | 第 8 章