学习神器

在一个HTTPS连接的网站里,输入账号密码点击登录后,到服务器返

2018-07-07  本文已影响67人  Jorunk

作者:故胤道长
链接:https://www.jianshu.com/p/c687110e552c

HTTPS加密流程

1.客户端打包请求。包括url,端口啊,你的账号密码等等。账号密码登陆应该用的是Post方式,所以相关的用户信息会被加载到body里面。这个请求应该包含三个方面:网络地址,协议,资源路径。注意,这里是HTTPS,就是HTTP + SSL / TLS,在HTTP上又加了一层处理加密信息的模块(相当于是个锁)。这个过程相当于是客户端请求钥匙。

2.服务器接受请求。一般客户端的请求会先发送到DNS服务器。 DNS服务器负责将你的网络地址解析成IP地址,这个IP地址对应网上一台机器。这其中可能发生Hosts、Hijack和ISP failure的问题。过了DNS这一关,信息就到了服务器端,此时客户端会和服务器的端口之间建立一个socket连接,socket一般都是以file descriptor的方式解析请求。这个过程相当于是服务器端分析是否要向客户端发送钥匙模板。

3.服务器端返回数字证书。服务器端会有一套数字证书(相当于是个钥匙模板),这个证书会先发送给客户端。这个过程相当于是服务器端向客户端发送钥匙模板。

4.客户端生成加密信息。根据收到的数字证书(钥匙模板),客户端会生成钥匙,并把内容锁上,此时信息已经加密。这个过程相当于客户端生成钥匙并锁上请求。

5.客户端发送加密信息。服务器端会收到由自己发送出去的数字证书加锁的信息。 这个时候生成的钥匙也一并被发送到服务器端。这个过程是相当于客户端发送请求。

6.服务器端解锁加密信息。服务器端收到加密信息后,会根据得到的钥匙进行解密,并把要返回的数据进行对称加密。这个过程相当于服务器端解锁请求、生成、加锁回应信息。

7.服务器端向客户端返回信息。客户端会收到相应的加密信息。这个过程相当于服务器端向客户端发送回应。

8.客户端解锁返回信息。客户端会用刚刚生成的钥匙进行解密,将内容显示在浏览器上。

HTTPS加密过程详解请去https原理:证书传递、验证和数据加密、解密过程解析

按下回车键,发生了什么?
  1. 网络请求的协议,有 HTTP,UDP,TCP,当然了是否要深入到 OSI 七层协议模型
OSI 七层协议模型

浏览发出请求,电脑,手机构造的 bit 流的IP 报文,到 IP 报文的已经发送,到 IP 报文在光缆,光纤中的传输,到信号的中继,放大,恢复,复原,重发,

信号从 电脑,手机,到交换机,到铁塔机房,到汇聚机房,到骨感机房,到IDC,到国际出口,一层一层的向上。

而且这写完全是在数十,数百毫秒内完成的。

中间的各种代理,浏览器代理,路由器代理,小区交换机,IPv4,IPv6网络的穿透,还有 VPN 代理,还有一些流量请求的监听。

UI->网路请求->IP 报文->数据传输->IP 报文-->响应网络请求。

本地浏览器代理和远端服务器的之间通讯。

本地请求,服务器收到请求,进行数据库查询,数据库维护,响应体构造,响应报文返回,本地主机收到报文,本地应用收到报文,浏览器进行响应体解析,最后进行 DOM 渲染呈现给用户。

这之前需要建立 Socket 连接,TCP 也好,UDP 也好,还有其他形式的

FTP、Telnet、SMTP、TFTP、HTTP、POP3、NNTP、IMAP4、HTTPS、SNMP、DNS、SMB、BOOTP

上一篇 下一篇

猜你喜欢

热点阅读