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.确认网站的真实性。

HTTP和HTTPS_第1张图片

二: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的工作原理

HTTP和HTTPS_第2张图片

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

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

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

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

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

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

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

HTTP和HTTPS_第3张图片

四:HTTP切换到HTTPS:

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

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

你可能感兴趣的:(HTTP和HTTPS)