代码改变世界

HTTP和HTTPS的区别

2016-11-07 13:58  elisa_0413  阅读(193)  评论(0编辑  收藏  举报

1、HTTP和HTTPS的概念

超文本传输协议HTTP(Hypertext transfer protocol)是一种详细规定了浏览器和万维网服务器之间相互通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTPS(Hypertext transfer protocol over secure socket layer),是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确保网站的真实性。

2、HTTPS与HTTP的区别主要如下:

https需要到cal申请证书,一般免费证书较少,因而需要一定费用;

http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;

http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80.后者是443;

http的连接很简单,是无状态的,https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http安全。

3、HTTPS的工作原理

(1)客户端发起HTTPS请求

       即用户在浏览器中输入https网址,然后连接到server的443端口;

(2)服务端的配置

       采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥;

(3)传送证书

       这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等;

(4)客户端解析证书

       这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密;

(5)传送加密信息

       这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了;

(6)服务端解密信息

       服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密;

(7)传输加密后的信息

       这部分信息是服务端用私钥加密后的信息,可以在客户端被解密还原;

(8)客户端解密信息

       客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。