这个非常得深非常得广来大概說一下。
-
客户端打包请求包括url,端口啊你的账号密码等等。账号密码登陆应该用的是Post方式所以相关的用户信息会被加载到body里面。这個请求应该包含三个方面:网络地址协议,资源路径注意,这里是HTTPS就是HTTP + SSL / TLS,在HTTP上又加了一层处理加密信息的模块(相当于是个锁)這个过程相当于是客户端请求钥匙。
-
服务器接受请求一般客户端的请求会先发送到DNS服务器。 DNS服务器负责将你的网络地址解析成IP地址这個IP地址对应网上一台机器。这其中可能发生Hosts Hijack和ISP failure的问题过了DNS这一关,信息就到了服务器端此时客户端会和服务器的端口之间建立一个socket连接,socket一般都是以file descriptor的方式解析请求这个过程相当于是服务器端分析是否要向客户端发送钥匙模板。
-
服务器端返回数字证书服务器端会有┅套数字证书(相当于是个钥匙模板),这个证书会先发送给客户端这个过程相当于是服务器端向客户端发送钥匙模板。
-
客户端生成加密信息根据收到的数字证书(钥匙模板),客户端会生成钥匙并把内容锁上,此时信息已经加密这个过程相当于客户端生成钥匙并鎖上请求。
-
客户端发送加密信息服务器端会收到由自己发送出去的数字证书加锁的信息。 这个时候生成的钥匙也一并被发送到服务器端这个过程是相当于客户端发送请求。
-
服务器端解锁加密信息服务器端收到加密信息后,会根据得到的钥匙进行解密并把要返回的数據进行对称加密。这个过程相当于服务器端解锁请求、生成、加锁回应信息
-
服务器端向客户端返回信息。客户端会收到相应的加密信息这个过程相当于服务器端向客户端发送回应。
-
客户端解锁返回信息客户端会用刚刚生成的钥匙进行解密,将内容显示在浏览器上
HTTPS加密过程详解请去