万维网客户程序与万维网服务器程序之间的交互遵守严格的协议,这就是超文本传输协议 HTTP(HyperText Transfer Protocol)。HTTP 是一个应用层协议,它使用 TCP 连接进行可靠的传送。
安全套接字层 SSL(Secure Socket Layer) 和运输层安全 TLS(Transport Layer Security)是现在广泛使用的两个安全协议,作用在端系统应用层的 HTTP 和运输层之间,在 TCP 之上建立起一个安全通道,为通过 TCP 传输的应用层数据提供安全保障。
超文本传输安全协议 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)在 HTTP 的基础上加入 SSL 层,通过传输加密和身份认证保证了传输过程的安全性。
本次实验使用 Wireshark 报文分析软件,分别通过分析 HTTP 和 HTTPS 协议的交互过程和报文内容,研究二者的工作原理及异同之处。
HTTP 协议分析
HTTP 协议使用了面向连接的 TCP 协议作为运输层协议,保证了数据的可靠传输。具体来说,HTTP 协议首先要和服务器建立 TCP 连接,这需要使用三报文握手。当建立 TCP 连接的三报文握手的前两部分完成后,万维网客户就把 HTTP 请求报文,作为建立 TCP 连接的三报文握手中的第三个报文的数据,发送给万维网服务器。服务器收到 HTTP 请求报文后,就把所请求的文档作为响应报文返回给客户。
建立 TCP 连接
我们首先通过实验验证建立连接的过程。这里我们选择一个使用 HTTP 协议的网站“C语言中文网”( http://c.biancheng.net/ )进行访问,然后在 Wireshark 软件中过滤出涉及该网站 IP 地址的报文。
从图中可以清