客户端与一个服务器之间的过程
域名解析为ip。
查询路径:浏览器缓存 - 本地Hosts文件 - 本地DNS解析器缓存 - 本地DNS服务器 - 跟DNS服务器 - 顶级DNS服务器
向服务器443端口请求建立TCP连接。
(SYN=1,seq=x)SYN_SEND - (SYN=1,ACK=1,ack=x+1,seq=y) SYN_RCVD (ACK=1,ack=y+1,seq=x+1)ESTABLISHED - ESTABLISHED
tcp连接查询命令 knowledge.zhaoweiguo.com/build/html/…
建立连接后,客户端请求获取服务端的证书,验证证书,并与服务器沟通SSL安全参数。
客户端发送提供可选的加密算法,以及第一个随机数 - 服务端返回选中的算法以及证书,以及第二个随机数。
客户端验证证书,从证书中获取公钥,加密 第三个随机数 - 服务器利用私钥解密获得 会话密钥【第三个随机数】。
客户端和服务器利用这个这三个随机数生成会话密钥,加密解密之后相互传送的报文。
沟通完成后,建立了SSL安全层,客户端将HTTP报文发送给安全层,安全层将报文加密后发送给TCP连接。
数据传输完成后,断开TCP连接
发送端 (FIN=1,seq=x)FIN_WAIT_1 - 接收端(ACK=1,ack=x+1)CLOSE_WAIT
发送端FIN_WAIT_2
接受端(FIN=1,seq=y)LAST_ACK - 客户端(ACK=x,ack=y+1)TIME_WAIT
接受端 CLOSED
客户端 CLOSED
服务器反向代理之后的可能触发过程
nginx 反向代理,负载均衡,限流
upstream,proxy_pass,limit_req_zone
rpc 调用
tcp连接管理
mysql, redis,mq 等