之前复习计算机网络的时候,一直给自己留了一个待解决的问题,就是标题所示。
老规矩先看百度百科
以我目前的水平,好像看不出什么,哈哈,水平有限。但是我觉得好像Https一直强调安全,好像大概意思是Https在安全方面做的比较好,那我们接下来一起探讨一下吧~
什么是HTTP
HTTP是一种超文本传输协议(Hypertext Transfer Protocol),学过计算机网络的小伙伴,就算没学过的也应该听过OSI 的七层协议,分别是应用层(Application)、表示层(Presentation)、会话层(Session)、运输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。
我们还听过TCP/IP协议,主要包括:应用层、运输层、网际层和网络接口层。
那什么是协议呢?其实很好理解,我们日程生活中,无论干什么,都要按规矩办事的呀,无规矩不成方圆的呀,那在互联网中两台电脑进行数据传输,肯定要他们约定好的协议,比如传输的数据类型,你传的是json类型还是什么类型的呀,我们要在传输之前约定好的呀,不然你传这个,我传那个,整个互联网不是乱套了吗?想想一下,老师正在上课,一会你去上厕所,你会他去厕所,那老师还讲课吗哈哈。这里要注意一个点:就是自己一个人对自己的约定不能成为协议,协议的前提条件必须是多人约定。
那我们就总结一下,到底什么是 HTTP? HTTP 是一个在计算机这个大世界中专门在两点之间进行传输文字、图片、音频、视频等超文本数据的约定和规范
那什么是Https
HTTP协议它是以明文方式发送内容,不提供任何方式的数据加密。明文意思就是协议里的报文不使用二进制数据,而是用简单可阅读的文本形式。就是说通过抓包等一些手段可以获得我们的敏感信息,比如银行账户,登录密码等等这些对我们重要的信息。那为了解决安全的问题,Https自然而然的就诞生了。
关于Https我们之前应该都有听过对称加密和非对称加密,那我用我的理解来解释一下两者。
对称加密
在我们进行数据传输的时候由于http是明文传输,数据很容易被窃取,那我现在加上一把钥匙,也就是密钥,我们传输的内容使用密钥进行加密,同时也可以使用密钥进行解密。但是在安全性方面可能存在一些问题,因为密钥存放在客户端有被窃取的风险。常用的对称加密算法大家可以自行百度一下,这里我就不做拓展了。
非对称加密
刚才说到对称加密的密钥存放在客户端,所以很有可能被窃取,好的,那我现在有两把钥匙,一把叫公钥,一把叫私钥,公钥放在客户端,私钥放在服务器端,客户端传来的数据必须使用服务器端的私钥进行解密,同样服务器端的数据也必须使用客户端的公钥进行解密,小伙伴们应该可以看出这种加密方式会使我们在进行数据传输的时候更有效的防止我们的数据被窃取。但什么事都是有利弊的。这种非对称加密的效率相比于对称加密要差很多。
我这里写的是最简陋版的对称加密和非对称加密,里面有很多细节可以去扣,这里我只是了解一些,不好在这里做拓展,很有可能误导了一些刚刚了解的小伙伴们,所以我还是在彻底搞懂之后再发文章分享给大家吧。
据我了解的https使用的是对称加密与非对称加密相结合的方式。
上面的Http的介绍也相对简陋了些,其中包括一些Http的优缺点比如简单,灵活,同时也不安全,Http是无状态的还有性能方面的对比没有阐述。感兴趣的小伙伴可以去自行了解一下,以后我还会继续写一些Http和Https的文章,由于我也是处于摸索阶段,所以分析的比较粗糙,在我彻底搞懂他们之间的种种联系后,我会出一篇比较全面的文章,希望大家见谅~