http 和 https 简单总结

前言

最近面试被问到 http 和 https 的区别,呃。。。只能回答 https 是加密传输的,更安全之类的,再多问一句为什么 https 是安全的,而 http 不安全?只能尴尬十秒,然后下一题…于是,这里对 http 和 https 做一个简单总结。

对称加密和非对称加密

首先需要理解这两个概念,这里我直接截了郭霖大婶的文章(文末有链接)
在这里插入图片描述
理解了这两个概念之后,接下来看几个常见问题

  1. 为什么 http 是不安全,而 https 是安全的呢?
    答:http 采用的是明文传输,而我们知道,客户端发送给服务器的数据是由一个一个的节点转发的(你家的路由器,小区的网关),服务器发送给客户端也是同理。在这些节点当中很容易对我们发送的数据进行监听,窃取甚至修改,而由于 https 是明文传输,这样就很危险了。
    https 采用的是对称加密和不对称加密相结合的方式,通过对传输的数据进行加密,这样即使数据被窃取,由于没有对应的私钥解密数据,所以数据也是安全的。
    那 https 是怎么做到加密解密以及防止数据被窃取的呢?这就是下一个问题。

  2. https 是怎么对数据进行加密,保护数据安全的呢?
    答:首先网站的管理者需要向 CA 机构进行申请,将自己的公钥,域名以及其他一些信息提供给 CA 机构,CA 机构根据这些信息用自己的私钥加密成一个证书给到网站;当浏览器首次请求访问网站时,首先将这个加密的证书数据返回给浏览器,而系统本身集成了各家 CA 机构的公钥,遍历这些公钥,如果能成功解密,就可以获得网站的公钥,之后浏览器随机生成一个密钥,使用该公钥进行加密,发送给网站,网站通过私钥解密得到浏览器生成的密钥,这个过程就是非对称加密。这之后,由于网站已经获取了浏览器的密钥,就可以使用对称加密的方式来进行数据传输了。
    而中间的监听者,由于没有网站的私钥,就没法解密获取浏览器生成的密钥。
    即使中间的监听者能够对网站的加密证书进行替换,由于证书中还包括了网站的其他特定信息,浏览器获取到最后的证书,和最初请求的一些信息(如网站)对不上,浏览器也是会显示异常界面。

  3. https 相比 http 有哪些差异?
    答:https 并不是一个独立于 http 的新的协议,其实数据在网络上传输还是那一套流程,只是 https 在 http 的基础上使用了一个额外的 TLS 安全层,通过这个安全层对数据进行加密,这样传输的数据就是加密了的,即使被监听,窃取,由于没法解密,数据也就安全了。其实数据在网络上传输是没法避免被监听和窃取的。https 并不是防止数据被监听和窃取,而是对数据进行加密,这个要理解清楚。

总结

对于我们移动端开发,理解上面说的,就基本能应付面试,日常工作上遇到相应问题,也起码知道解决方向在哪儿,就基本可以了。本篇文章基本是通过下面几篇文章简单总结而来,针对【http 和 https】,理解下面参考文章所讲的,就基本差不多。

参考资料

1、写一篇最好懂的HTTPS讲解:
https://blog.csdn.net/guolin_blog/article/details/104546558
2、HTTP和HTTPS协议,看一篇就够了:
https://blog.csdn.net/xiaoming100001/article/details/81109617?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase
3、HTTPS 为什么是安全的:
https://hencoder.com/http-1/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值