HTTP和HTTPS的区别

推荐图书《图解HTTP》

HTTP:

全称是Hypertext Transfer Protocol Vertion (超文本传输协议),用于客户端和服务器之间的通信,在两台计算机之间使用http协议通信时,在一条通信线路上必定有一端是客户端,一段是服务器端

HTTP的缺点:

1、通信使用明文(不加密),内容可能会被窃听

2、不验证通信方的身份,因此有可能遭遇伪装

3、无法证明报文的完整性,所以有可能已遭改





HTTPS:

全称是Secure Hypertext Transfer Protocol(安全超文本传输协议),HTTPS = HTTP + 加密 + 认证 + 完整性保护 

HTTPS的特点

1、HTTPS是身披SSL外壳的HTTP

SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本,SSL证书介绍SSL证书_百度百科

2、HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。

3、使用由数字证书认证机构(CA,certificate authority)和其相关机关颁发的公开密钥证书

4、HTTPS的通信步骤

步骤1: 客户端通过发送Client Hello报文开始SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件( CipherSuite )列表(所使用的加密算法及密钥长度等)。

步骤2: 服务器可进行SSL通信时,会以Server Hello报文作为应答。和客户端一样,在报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。

步骤3: 之后服务器发送Certificate报文。报文中包含公开密钥证书。

步骤4: 最后服务器发送Server Hello Done报文通知客户端,最初阶段的SSL握手协商部分结束。

步骤5: SSL第一次握手结束之后,客户端以Client Key Exchange报文作为回应。报文中包含通信加密中使用的一种被称为Pre-master secret的随机密码串。该报文已用步骤3中的公开密钥进行加密。

步骤6: 接着客户端继续发送Change Cipher Spec报文。该报文会提示服务器,在此报文之后的通信会采用Pre-master secret密钥加密。

步骤7: 客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。

步骤8: 服务器同样发送Change Cipher Spec报文。

步骤9: 服务器同样发送Finished报文。

步骤10:服务器和客户端的Finshed报文交换完毕之后, SsL连接就算建立完成。当然,通信会受到SSL的保护。从此处开始进行应用层协议的通信,即发送HTTP请求。

步骤11:应层协议i,即发送HTTP响应。

步骤12:最后由客户端断开连接。断开连接时,发送close notify报文。上图做了一些省略,这步之后再发送TCP FIN报文来关闭与TCP的通信。

HTTPS的缺点:

1、相同的网络条件下,HTTPS协议会使页面加载时间延长50%,增加10%到20%的耗电,具体可参考上面的HTTPS通信步骤

2、HTTPS协议的安全是有范围的,在黑客工具、服务器劫持、拒绝服务攻击等方面起不到什么作用

3、SSL专业证书需要购买,功能越强大的证书费用越高

HTTP与HTTPS的区别总结:

1、HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头

2、浏览器访问HTTPS开通的web网站时,浏览器的地址栏内会出现一个带锁头的标记

3、在 OSI 网络模型中,HTTP 工作于应用层,而 HTTPS 工作在传输层

4、HTTP 无需加密,而 HTTPS 对传输的数据进行加密,避免用户信息泄露

5、HTTPS复杂的传输方式,降低了被劫持的风险

6、HTTP 无需证书,而 HTTPS 需要CA认证证书

7、手机抓包通过Fiddler链接代理时,HTTPS需要特殊设置,在手机中安装证书,HTTP不需要设置

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容