在一个 HTTPS 连接的网站中,输入账号和密码,点击登录按钮后,到服务器返回这个请求前,期间发生了什么?
1、客户端打包请求。
包括 URL、端口、账号、密码。
2、服务端接受请求。
一般客户端的请求会先被发送到DNS服务器。DNS服务器负责将网络地址解析成IP地址。这个过程可能发生 Hosts Hijack 和 ISP failure 问题。过了 DNS,信息到了服务器端。此时服务器和客户端的端口之间建立一个 socket 连接。socket 一般是以 file descriptor 方式解析请求。
这个过程相当于服务器分析是否要向客户端发送数字证书。
3、服务端返回数字证书。
服务器向客户端发送数字证书。
4、客户端生成加密信息。
客户端生成钥匙并锁上请求。
5、客户端发送加密信息。
6、服务器解锁加密信息。
服务器解锁请求,生成、加密回应信息。
7、服务端向客户端返回信息。
8、客户端解锁返回信息。