http和https的区别&https的连接方式

首先了解什么是http协议,http协议是超文本传输协议,他存在的目的是为浏览器和服务器之前传输信息。但是http是明文传输的,不管是谁,只要抓取了浏览器传向服务器,或者服务器传向浏览器的信息,就可以获取里面的信息,如果传输密码这些信息的话,就存在很大的安全隐患,所以https就有了,https是结合http和ssl,是相对安全的传输,因为ssl会对传输的内容进行加密,就算你获得了传输的信息,也无法解析。除此之外,ssl还可以用来确认网站的真实性。
打个可能不太恰当的比方:假设你很喜欢写日记,http相当于你在家里的时候,直接将你的日记放在桌子上,这样就很容易给你爸妈给偷看了。https就是把你的日记放在保险箱并且锁上,这样你的爸妈在不知道你保险箱密码的情况下就拿不到你的日记了。

所以http和https的主要区别在于
1、https需要ca申请证书。
2、http传输是明文的,而https是有用ssl进行加密的。
3、http的传输的无状态的,而https是有进行加密,身份认证的传输。
4、http和https的传输不一样,所以他们对应的端口也不一样,一个是80,一个是443。
既然https有这么多好处,还是使用http的比较多呢,主要从经济,效率,安全信任方面。
经济:ca证书的需要钱的,越好的证书,越贵。有些不需要安全性高的网站,没有必要增加这方面的开销。
效率:https多了个ssl握手和加密的过程,会让网站加载速度变慢。
安全信任:ssl也不是一定就安全的,如果证书公司泄露安全算法,也会使得https变得不安全。
ssl加密,解密,验证过程:
客户端:c,服务器:s;
1、c端发送请求给s;
2、s端处理;
3、s发送一个公钥给c;
4、c端对公钥进行验证,验证过了就通过公钥对随机的key进行加密然后下一步,不过就发出警告;
5、将加密后的key发送给s;
6、s通过私钥对key进行解密,通过key对信息进行加密,
7、传输加密信息给c;
8、c通过key对加密信息进行解密,从而获取到信息。

图片来自网络
(图片来自网络)

请描述https的请求过程。

  1. 客户端向服务器发起HTTPS请求,连接到服务器的443端口;
  2. 服务器端有一个密钥对,即公钥(即数字证书)和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人;
  3. 服务器将自己的公钥发送给客户端;
  4. 客户端收到服务器端的公钥之后,检查其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续,如果公钥合格,则客户端会生成一个客户端密钥,然后用服务器的公钥对客户端密钥进行非对称加密成密文,至此,HTTPS中的第一次HTTP请求结束;
  5. 客户端发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器;
  6. 服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文;
  7. 然后服务器将加密后的密文发送给客户端;
  8. 客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据。这样HTTPS中的第二个HTTP请求结束,整个HTTPS传输完成。
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值