一.HTTP通信原理

直接用一张图完美的解释
HTTP和HTTPS通信原理客户端输入URL回车,DNS解析域名得到服务器的IP地址,服务器在80端口监听客户端请求,端口通过TCP/IP协议(可以通过Socket实现)建立连接。HTTP属于TCP/IP模型中的运用层协议,所以通信的过程其实是对应数据的入栈和出栈。

HTTP和HTTPS通信原理

二.HTTPS实现原理

HTTP和HTTPS通信原理1.client向server发送请求https://baidu.com,然后连接到server的443端口。

2.服务端必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥。服务器的开发人员向数字证书认证机构(CA)提出公开**的申请,审核通过后,对公开**进行数字签名(使用私钥),然后分配该签名,将其公开**放入数字证书中绑定。

3.传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等内容。

4.客户端解析证书
客户端在收到证书后,使用数字机构的公开**对已签名的公开**进行认证,通过客户端的TLS进行认证,比如会验证公钥是否有效,比如颁发机构,过期时间等等,然后对比认证后的公开**和发送方发送来的公开**是否一致。如果没有问题就会生成一个随机**,然后用证书对该随机值进行加密

5.传送加密信息
这里传送的就是之前加密过的**,目的要让服务器接收到该**,以后就可以通过该**进行通信的加密解密了。

6.服务端加密信息
服务器在收到加密的**后使用私钥进行解密,得到通信**,之后使用该**进行要发送消息的加密。

7.传输加密后的信息
这里传输的就是服务端加密后的消息,客户端子啊收到以后可以用随机**进行解密

8.客户端解密信息
客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容。

相关文章: