• 在浏览器中输入一个URL后都发生了什么


    这道题目没有所谓的完全的正确答案,这个题目可以让你在任意的一个点深入下去, 只要你对这个点是熟悉的。以下是一个大概流程:

    1. 浏览器向DNS服务器查找输入URL对应的IP地址。
    2. DNS服务器返回网站的IP地址。
    3. 浏览器根据IP地址与目标web服务器在80端口上建立TCP连接
    4. 浏览器获取请求页面的html代码。
    5. 浏览器在显示窗口内渲染HTML。
    6. 窗口关闭时,浏览器终止与服务器的连接。

    这其中最有趣的是第1步和第2步(域名解析)。我们输入的网址(域名)是IP地址的一个别名, 在一个DNS内,一个域名对应一个IP地址。域名系统(DNS) 的工作就是将域名与它的IP地址对应起来。DNS是分布式的,同时也是具有层级关系的。

    一个域名服务器虽然只记录一个小的子网内的主机名和IP地址, 但所有的域名服务器联合起来工作,就能将全网内的域名与它们的IP地址对应起来。 这也就意味着,如果一个域名服务器无法找到某个请求域名所对应的IP地址, 它就会向其它的域名服务器发出请求进行寻找。

    其实就是一个DNS的解析过程:
    第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

    第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

    第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。

    第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

    第五步:重复第四步,直到找到正确的纪录。

     参考:

    http://www.cnblogs.com/lichenghan/p/4019370.html

    http://www.cnblogs.com/panxueji/archive/2013/05/12/3073924.html

    http://www.cricode.com/2398.html

    http://www.berlinix.com/net/from-url-input.php 

  • 相关阅读:
    疑问
    linux 7.0+救援模式
    Unity3D手游开发日记(6)
    Unity3D手游开发日记(4)
    Unity3D手游开发日记(5)
    Unity3D手游开发日记(2)
    Unity3D手游开发日记(3)
    Unity3D手游开发日记(1)
    十大最佳Leap Motion体感控制器应用
    unity3d模型不接受光照
  • 原文地址:https://www.cnblogs.com/simonbaker/p/4253832.html
Copyright © 2020-2023  润新知