输入url,首先会进行
dns查询
解析域名获取ip地址
优化策略:使用dnf-prefech属性,进行dns预查询
tcp连接
浏览器发送tcp连接的申请的报文,会携带SYN标志位,seq序号,SYN标志位设为1就说明这是一个申请连接的报文,之后服务器回复ACK标志位,ack序号=seq+1,这样浏览器就可以通过检验ack序号的值判断连接是否成功,ACK标志位为1说明这就是一个确认报文,之后服务器发送申请连接的报文,按理说应该是浏览器向服务器端申请连接,服务器回复确认,然后服务器向浏览器申请连接,浏览器回复确认,应该是四次握手,但是,服务器回复确认和申请连接使用的标志位不冲突,所以服务器可以在确认的同时申请连接,就是报文里SYN和ACK的标志位都设为1,所以就变成了三次握手
四次挥手无非是把SYN改成了FIN,原理是一样的
优化策略:无
ssl握手
浏览器发送一个随机数,浏览器支持的加密方式,
服务器选择一种加密方式,然后发送一个公钥和一个随机数
浏览器随机数然后通过公钥加密,然后发送给服务器,
服务器通过私钥解密获得随机数
这样浏览器,服务器同时有了三个随机数,之后用这三个随机数生成一个公钥,使用对称加密传输数据
ssl协商的过程采用的是非对称加密,传输过