1 浏览器做的第一步工作是解析 URL,生产 HTTP 请求信息
    2 真实地址查询 —— DNS
    查询服务器域名对于的 IP 地址,有一种服务器就专门保存了 Web 服务器域名与 IP 的对应关系,它就是 DNS 服务器。
    域名解析的流程

    1. 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
    2. 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。
    3. 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
    4. 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”
    5. 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
    6. 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
    7. 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
    8. 本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。

    (先发给本地 DNS 服务器,如果缓存能找到,那就返回IP地址。没有就去访问DNS域名服务器查找IP地址)
    3 通过 DNS 获取到 IP 后,就可以把 HTTP 的传输工作交给操作系统中的协议栈
    image.png
    应用程序(浏览器)通过调用 Socket 库,来委托协议栈工作。
    4 TCP三次握手建立连接
    5 IP 将数据封装成网络包发送给通信对象。
    6 在 IP 头部的前面加上MAC 头部
    7 然后网卡把数字信号转化为电信号 再通过交换机 路由器发送