HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议。 简单来说就是一种发布和接收 HTML 页面的方法,被用于在 Web 浏览器和网站服务器之间传递信息。
HTTP是一个优秀的通信协议,不过事物皆具有双面性,该协议也是有不足之处,大概有以下几点:
HTTP协议本身是没有加密功能,所以无法对请求和响应等内容加密。HTTP报文均采用明文形式,数据包在网络间传输很容易就被人窃取,如使用抓包工具(Wireshark)等。在对数据包进行抓取后进行分析,由于报文是以明文形式传输,如果内容是关于如个人信息等重要隐私则可能会被他人获取后所利用,造成损失。
对内容加密是一种保护信息的好方法,HTTP是没有加密机制的,所以需要借助第三方来帮助实现加密。对内容加密的方式有很多如:
HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议)是一种透过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。
解析:从最初HTTP与TCP直接通信转变为HTTP先与SSL通信,之后SSL再与TCP通信。可以理解为HTTP加多了层SSL协议外套就变为了HTTPS。 下面,通过一条公式来表达HTTPS:HTTP + 加密 + 认证 + 完整性保护 = HTTPS
概述:HTTPS通信过程结合了对称加密和非对称加密两种方法。HTTPS服务端在连接建立SSL通信时先会将自身的公钥发送给客户端。客户端拿到公钥后通过非对称加密与服务端协商数据传输通道的对称加密密钥。一旦双方协商出会话密钥,则后续的数据通讯就会一直使用基于该会话密钥的对称加密算法了。