URL输入到网页打开

输入url,到网页完全打开?
    首先读取缓存,搜索自己的DNS缓存,找到了IP地址就直接访问
    1.DNS解析
        由DNS服务器来将域名解析成为对应服务器的IP地址
    2.TCP连接
        知道了服务器的IP后,需要三次握手协议才能建立连接,发送3个包
        确认双方的发送和接受能力都是正常的,指定自己的初始化序列号
        实质连接服务器指定端口,建立TCP连接,同步连接双方的序列号和确认号
        开始客户端:closed  服务端:listen
            1.第一次握手
                客户端向服务端发送一个SYN报文并指明自己的初始化序列号ISN
                客户端进入SYN_SENT状态
                首部的同部位SYN=1,初始序号seq=x
                SYN=1的报文段不能携带数据,但需要消耗一个序号
            2.第二次握手
                服务端收到客户端的SYN报文之后,以自己的SYN报文作为应答
                指定自己的初始化序列号ISN(s),将客户端ISN+1作为ACK的值
                此时服务端处于SYN_RCVD状态
                确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y
            4.第三次握手
                客户端收到SYN报文段后,继续发送一个ACK报文,值为服务端ISN+1
                服务端处于ESTABLISHED状态
                服务端收到这个ACK报文后也进入ESTABLISHED状态
                确认报文段ACK=1,确认号ack=y+1,序号seq=x+1
                ACK报文段可以携带数据,不携带数据则不消耗序号
    3.发送请求
        发送HTTP请求
    4.接受响应
        服务器接受请求并返回HTTP报文
    5.根据返回的状态码判断服务端处理是否正常
    6.浏览器渲染页面
        返回成功后,浏览器拿到请求页面的代码,将其解析渲染器出来
        1.HTML标记
            调用HTML解析器解析成Token并构建成DOM树
        2.style/link标记
            调用CSS解析器,处理CSS标记并构建CSSOM树
        3.script标记
            调用JS解析器,处理JS代码,绑定事件,修改DOM树和CSSOM树
        将两颗树合并成为一个渲染树
        根据渲染树来计算布局,计算每个节点的几何信息
        根据计算好的信息来绘制页面
    7.断开连接
        同理断开一个连接需要四次挥手
            1.第一次挥手(客户端: 我想断开了)
                客户端发送一个FIN报文,报文中指定一个序列号
                客户端处于FIN_WAIT1状态
                也就是发送连接释放报文段(FIN=1,序号seq=u)
                停止发送数据,主动关闭连接
            2.第二次挥手(服务端: 你想断开吗)
                服务端收到FIN之后,会发送ACK报文,且把客户端的序列号值+1作为ACK报文的序列号值
                服务端处于CLOSE_WAIT状态
                也就是服务端收到连接释放报文段后发出确认报文段
                TCP处于半关闭状态,连接释放
                客户端收到服务端的确认后,进入FIN_WAIT2状态
                等待服务端发出连接释放报文段
            3.第三次挥手(服务端: 我也想断开了)
                服务端也想断开连接了,向客户端发送FIN报文,指定一个序列号
                服务端处于LAST_ACK状态
            4.第四次挥手(客户端: 发起确认)
                客户端收到FIN后,一样发送一个ACK报文作为应答,把服务端序列号值+1作为自己ACK报文的序列号值
                客户端处于TIME_WAIT状态,确保服务端收到了自己的ACK报文才会进入CLOSED状态

发布了27 篇原创文章 · 获赞 4 · 访问量 494

猜你喜欢

转载自blog.csdn.net/qq_45517916/article/details/104611841