0

    从浏览器中输入一个 URL 之后(地址之后),发生了哪些事情

    2023.07.31 | admin | 118次围观

    从浏览器中输入一个 URL 之后(地址之后),发生了哪些事情

    发送之前的准备工作

    1、浏览器,首先会根据这里的域名,查询对应的 IP 地址

    2、浏览器会构造出一个HTTP 请求,这个 HTTP 请求中包含了域名信息和用户输入的信息

    3、浏览器调用操作系统的 socket api , 把这个 HTTP 数据交给 TCP 来进一步处理,TCP协议就需要构造一个 TCP 数据报

    在发送 TCP 数据报之前,还需要进行三次握手,建立连接,此处的三次握手涉及到 SYN/ACK也是同样要经过网络层,数据链路层,物理层,依次封装到达对端服务器之后再依次分用具体进行数据传输,发送方会把这个TCP 数据进一步的交给 IP 协议进行再一次封装

    4、网络层把 TCP 数据封装成一个 IP 数据报,进一步的进行封装,也可能是多个 IP 数据报, IP 协议会自动进行分包的过程,然后把数据再交给数据链路层

    5、数据链路层会把这个数据再封装成 以太网数据帧,再构造枕头的时候需要i根据 IP 映射到 mac 地址,这个过程以来了 ARP 协议,再把这个数据交给物理层传输

    6、物理层把数据转换成电信号,继续传输到下一个节点

    路途中间的转发过程

    7、电信号沿着网线,到达了下一个设备(路由器),

    到达接收方:

    8、数据到达接收方,数据仍然要进行分用如何从浏览器的url中获取信息,层层解析

    9、应用程序调用对应 socket api ,从TCP 缓冲区中读取数据如何从浏览器的url中获取信息,应用程序按照 HTTP 协议来解析,获取到其中的 URL 中指定的路径,,根据 URL中指定的路径,知道要获取的根路径 /

    10、目标服务器会对这个根路径进行配置,映射到一个 具体的html文件,服务器会读取这个文件,并把这个文件内容构造成一个 HTTP 响应数据,然后再调用 socket api进行发送~

    11、重复上面的过程,服务器发送的数据进行层层封装,最终变成物理层上传输的光电信号

    12、这个广电信号再到达下一个路由器,路由器重复刚才的分用过程,解析到IP这一层,取出其中的 ip ,查找路由表,找到下一个设备在哪,再进行封装

    13、重复这个过程,直至到达用户端

    14、用户端执行上面的操作,依次仅从分用,读取数据,最终交给应用程序

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论