美文网首页饥人谷技术博客
从url输入到页面展现发生了什么

从url输入到页面展现发生了什么

作者: cce117b0a0ce | 来源:发表于2017-05-18 10:58 被阅读31次

    概述

    1、在浏览器输入输入url;
    2、域名解析,查找对应的ip地址;
    3、浏览器根据 IP 地址与服务器建立 socket 连接;
    4、浏览器与服务器通信: 浏览器请求,服务器处理请求;
    5、浏览器与服务器断开请求

    1、在浏览器输入url

    url:统一资源定位器,用于定位互联网上的资源。

    2、域名解析查找对应的ip地址

    概念解释
    • ip地址:IP协议为互联网上的每一个网络和每一台主机分配一个逻辑地址。IP地址如同门牌号码,通过IP地址来确定每一台主机的位置。服务器本质也就是一台主机,访问服务器也必须要知道其所对应的IP地址。
    • 域名(DN):全称网域名称,是由一串用点分割的名字组成的internet上某一台计算机和计算机组的名称,用在数据传输时标识计算机的电子方位。因为IP地址难记忆且不易输入,所以用域名来代替纯数字的IP地址。
    • 网域名称系统(DNS):是因特网的一项核心服务,它作为可以将 域名和IP地址相互映射的一个分布式数据库。DNS的作用就是把域名解析为相对应的IP地址。
    域名解析流程

    1、浏览器缓存,浏览器会缓存DNS记录一段时间;
    2、系统缓存,从hosts文件中查找是否有该域名所对应的IP;
    3、前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个LDNS,也就是本地区的域名服务器。大约80%的域名解析到这里就结束了,所以LDNS主要承担了域名的解析工作。
    4、如果都没有找到,则向根域名服务器查找域名对应 IP,根域名服务器把请求转发到下一级。Name Server域名服务器会查询存储的域名和IP的映射关系表,在正常情况下都根据域名得到目标IP地址,连同一个TTL值返回给DNS Server域名服务器,返回该域名对应的IP和TTL值,LDNS会缓存这个域名和IP的对应关系。把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

    建立连接

    知道了服务器的 IP 地址,下面便开始与服务器建立连接了。
    TCP协议的三次握手:

    • 主机向服务器发送一个建立连接的请求(您好,我想认识您);
    • 服务器接到请求后发送同意连接的信号(好的,很高兴认识您);
    • 主机接到同意连接的信号后,再次向服务器发送了确认信号(我也很高兴认识您),自此,主机与服务器两者建立了连接。

    TCP 协议:三次握手的过程采用 TCP 协议,其可以保证信息传输的可靠性,三次握手过程中,若一方收不到确认信号,协议会要求
    重新发送信号。

    网页的请求与显示

    MVC 模型(model)-视图(view)-控制器(controller).png

    1、浏览器根据url生成http请求给到控制器;
    2、从模型查找匹配控制器发来的请求返回给控制器得到数据。
    3、控制器发送数据给视图,视图将数据组合成html文件反馈给控制器。
    4、控制器将html文件发送给浏览器,在浏览器没有完全接受html网页前渲染、显示网页。

    浏览器与服务器断开链接-四次挥手

    1、主机向服务器发送一个断开连接的请求(不早了,我该走了);
    2、服务器接到请求后发送确认收到请求的信号(知道了);
    3、服务器向主机发送断开通知(我也该走了);
    4、主机接到断开通知后断开连接并反馈一个确认信号(嗯,好的),服务器收到确认信号后断开连接;

    补充:

    • 为什么服务器在接到断开请求时不立即同意断开:当服务器收到断开连接的请求时,可能仍然有数据未发送完毕,所以服务器先发送确认信号,等所有数据发送完毕后再同意断开。
    • 第四次握手后,主机发送确认信号后并没有立即断开连接,而是等待了 2 个报文传送周期,原因是:如果第四次握手的确认信息丢失,服务器将会重新发送第三次握手的断开连接的信号,而服务器发觉丢包与重新发送的断开连接到达主机的时间正好为 2 个报文传输周期。

    相关文章

      网友评论

        本文标题:从url输入到页面展现发生了什么

        本文链接:https://www.haomeiwen.com/subject/vgxsxxtx.html