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

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

作者: 饥人谷_刘二男 | 来源:发表于2017-03-14 18:33 被阅读0次

    Ps:参考文章:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/
    以下是个人简化版。

    1. 在浏览器中输入一个URL

    1.png

    没什么说的。比如在浏览器输入:非死不可.com

    2. 浏览器进行域名解析

    2.png

    也就是浏览器根据域名,查找到网站的IP地址。DNS的查找过程分如下几步:

    • 查找 Browser cache ,即浏览器缓存

    浏览器一般会缓存 DNS 一段时间,不同浏览器情况不一样,用户也可通过浏览器设置去查看和修改这一功能。

    • 查找 OS cache ,即系统缓存

    系统也有自己的缓存记录,如果在浏览器缓存中没有找到,就会去系统缓存中找。如: windows 系统就是从 host 文件中去查找。

    • 查找 Router cache ,即路由器缓存

    同理,路由器也有自己的 DNS 缓存。上述1、2步失败,则到达这一步。

    • 查找 ISP DNS cache ,即网络服务商的 DNS 缓存

    上述123都找不到 IP ,则会在网络服务商的 DNS 缓存中查找。

    • Recursive search ,即递归查找

    以上方法都不能找到 IP , 就会从根域名服务器开始循环查找,比如 .com 域名服务器。

    DNS循环查找的示意图:

    3.png

    3. 浏览器向 web 服务器发送一个HTTP请求

    4.png
    GET http://facebook.com/ HTTP/1.1
    Accept: application/x-ms-application, image/jpeg, application/xaml+xml, [...]
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; [...]
    Accept-Encoding: gzip, deflate
    Connection: Keep-Alive
    Host: facebook.com
    Cookie: datr=1265876274-[...]; locale=en_US; lsd=WW[...]; c_user=2101[...]
    

    不赘述。
    (好吧其实是作为菜鸟我还不懂这些。留个坑以后补吧 :-( )

    4. 服务器处理请求

    5.png

    服务器收到请求后进行响应,并回传数据。
    作为入门,这一块先不说太多,后续层次不断深入会慢慢了解。(ps:其实是现在我也说不出来。扑街。。。)

    5. 服务器开始渲染页面

    服务器按照接收到的页面代码,开始一步步渲染绘制网页。


    以上,从 URL 到页面的展现,就基本完成了。
    不过,这里是一个非常初级,非常简化的流程。更多其中的细节和复杂,在一步步的学习中和大家一起去探索。

    _

    二男
    2017年3月14日 18:33:37

    相关文章

      网友评论

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

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