当浏览器输入URL后经历了什么?

2018, Oct 10    

当在浏览器中输入url搜索后都经历了什么???

  • 创建连接
    1. 一般url作为网络地址需要指出请求的服务器的正确地址。为方便记忆一般为域名,当然也可以是ip地址。
    2. 当网络地址为域名时计算机需要将域名解析为对应的ip地址。客户端默认会先从本地hosts文件中查找是否有对应的ip 这也就是我们每次开发配hosts的原因 将其同样的域名指向我们指定的ip地址 当本地查询无果后会请求上级DNS服务器直至找到活到根节点
    3. 当找到了对应服务器的ip地址后就需要搭建连接 而传输是通过TCP协议实现的 这就是TCP的三次握手确定安全性 第一次是客户端发送一个SYN的数据包 当服务器接受到后会返回一个SYN/ACK数据包 当客户端收到后会发送ACK包 来确认完成连接搭建 其中任何一个环节如果未在规定时间内接受到数据都将默认接收方没有接收到请求数据 会重新发送 直到回复为止。 web server show html
    4. 而当我们在进行TCP三次握手时需要使用对应的MAC物理地址,每个计算机可以有多个ip地址但是只会有一个MAC地址 ARP协议可以将ip地址转换为mac地址 但是当计算机处于局域网时 需要中转多次 而每次都需要通过下一个的mac物理地址来继续寻找下一个中转目标
  • 服务器处理
    1. 当完成通道搭建后,服务器会将需要返回的数据重组为HTTP报文 返回HTML文件给客户端用来解析显示
  • 客户端渲染
    1. 当浏览器还没接受到完整的HTML时就已经开始渲染了 在遇到link script 图片时会发送http请求重复上述步骤在收到css文件后对已经渲染过的页面重新渲染