从地址栏输入一个网址,按下回车键,会经历那些过程?
1.用户发送一个url请求;
2.浏览器通过DNS(domain name system)获取网站的IP地址:客户端先检查本地缓存区是否有对应的IP地址,若找到则返回,若没找到则请求上级DNS服务器,直到找到或找到根节点;
3.浏览器和服务器通过TCP三次握手来建立TCP连接;
4.一旦连接建立,浏览器会通过该连接向服务器端发送HTTP请求;
5.远程服务器找到资源并返回响应报文,响应报文中包含状态码(200表示请求成功);
6.请求成功后服务器返回相应的资源,客户端下载资源;
7.四次挥手释放TCP连接;
8.接下来是页面渲染阶段,首先解析HTML生产DOM树,再解析CSS文件渲染样式,根据JS修改或添加DOM结构。
三次握手
第一次握手: 建立连接,客户端A发送SYN=1、随机产生Seq=client_isn的数据包到服务器B,等待服务器确认。
第二次握手: 服务器B收到请求后确认联机(可以接受数据),发起第二次握手请求,ACK=(A的Seq+1)、SYN=1,随机产生Seq=client_isn的数据包到A。
第三次握手: A收到后检查ACK是否正确,若正确,A会在发送确认包ACK=服务器B的Seq+1、ACK=1,服务器B收到后确认Seq值与ACK值,若正确,则建立连接