HTTP和HTTPS

数据通信,长连接+短连接:

长连接:TCP、UDP、WebSocket

短连接:HTTP、HTTPS

http协议运行在TCP之上,明文传输,客户端和服务端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的http,运行于TCP之上,是添加了加密和认证机制的HTTP。

一句话概括:HTTP+加密+认证+完整性保护=HTTPS

超文本传输协议HTTP被用于在web浏览器客户端和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密。

安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL层,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。加密需要一个密匙交换算法(DH密匙交换算法),双方通过交换后的密匙加解密。

一:HTTPS协议的主要作用:

1.建立一个信息安全通道,来保证数据传输的安全;2.确认网站的真实性。



二:HTTPS和HTTP的主要区别:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是TCP/80,后者是443。

3、http的连接很简单,是无状态的,信息是明文传输;https是HTTP运行在SSL/TLS之上,SSL/TLS运行在TCP之上,可进行加密传输、身份认证的网络协议,比http协议安全。

4、HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电。HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包,HTTPS除了TCP的三个包,还要加上ssl握手需要的9个包,一共是12个包。

三:HTTPS的工作原理


客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤:

1、客户端使用https的URL访问web服务器,要求与web服务器建立SSL连接。

2、web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

3、客户端的浏览器与web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

4、客户端的浏览器根据双方同意的安全等级,建立会话密匙,然后利用网站的公匙将会话密匙加密,并传送给网站。

5、web服务器利用自己的私钥解密出会话密钥。

6、web服务器利用会话密钥加密与客户端之间进行的通信。


四:HTTP切换到HTTPS:

将网站从http切换到https,需要将页面中所有的链接,例如js、css、图片等链接都由http改为https。

在切换时可以做http和https的兼容:去掉页面链接中的http头部,这样可以匹配http头和https头。例如:将http://www.baidu.com改为//www.baidu.com。

五:https是如何保证安全的

参考文章:HTTPS 是如何保证安全的?

                如果这样来理解HTTPS,一篇就够了

1、HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法

2、但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全。

     这种加密指的是可以生成一对密钥 (k1, k2)。凡是 k1 加密的数据,k1 自身不能解密,而需要 k2 才能解密;凡是 k2 加密的数据,k2 不能解密,需要 k1 才能解密。这种算法事实上有很多,常用的是 RSA。

       特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有的人。


3、然而直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性,所以客户端与服务器不直接使用公钥,而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。

4、这样通过这些机制协商出一个对称加密算法,就此双方使用该算法进行加密解密。从而解决了客户端与服务器端之间的通信安全问题。

转载于:https://juejin.im/post/5b0ad6105188253897440e48

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值