美文网首页
当用户在浏览器中输入了 baidu.com,页面展示百度首页,整

当用户在浏览器中输入了 baidu.com,页面展示百度首页,整

作者: 篮子鱼 | 来源:发表于2018-10-21 00:00 被阅读0次

    1.协议 URL

    首先当用户输入baidu.com,浏览器会自动补全为 https://www.baidu.com

    其中https://www.baidu.com”为URL。URL一般包含协议、端口号、域名还有其他信息。

    URL:统一资源定位器,用于定位互联网上的资源,俗称网址!

    协议:协议有 http、https 、ftp、file协议。

    其中的“baidu.com”才是域名。

    2.域名解析

    浏览器通过域名“baidu.com”查找所在服务器的IP地址。

    为什么要解析?

    DNS解析
    DNS解析的过程就是寻找哪台机器上有你需要资源的过程。在浏览器中输入www.baidu.com时,其实不是百度网站真正意义上的地址。互联网上每一台计算机的唯一标识是它的IP地址,但是IP地址并不方便记忆。用户更喜欢用方便记忆的网址去寻找互联网上的其它计算机,也就是上面提到的百度的网址。所以互联网设计者需要在用户的方便性与可用性方面做一个权衡,这个权衡就是一个网址到IP地址的转换,这个过程就是DNS解析。它实际上充当了一个翻译的角色,实现了网址到IP地址的转换。网址到IP地址转换的过程是如何进行的?

    域名解析流程

    域名解析是一个递归查询的过程。

    1. 浏览器缓存

    浏览器会首先向浏览器缓存查询,如果浏览器访问过baidu.com这个域名的IP地址,它会将这个域名的IP地址缓存一段时间。当用户再次输入该域名查找IP地址时,通过查询浏览器缓存它就能知道该域名的IP地址,就能直接访问IP地址了。如果没有就进行下一步。

    2.系统缓存

    如果浏览器在浏览器缓存中没有找到,浏览器就会从系统缓存Hosts文件中查找是否有相对应的IP。如果没有就进行下一步。

    3.路由器缓存

    如果系统缓存中也没有,就会从路由器中继续查找,一般路由器中也会缓存域名信息。如果还没有找到就进行下一步。

    4.LSP DNS缓存

    上面都找不到,就会找LSP缓存,也就是你的服务商,例如到电信的DNS上查找缓存。

    5.根服务器

    如果都找不到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级,直到找到IP。

    根服务器主要用来管理互联网的主目录,全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根服务器在美国其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。

    3.服务器处理

    服务器接收处理用户要打开baidu.com域名的Request(请求)。

    • 服务器是一台安装系统的机器,常见的系统如Linux、windowns server 2012,系统里安装出来请求的应用叫web server。
    • 常见的web服务器有Apache、Ngins、lls、Lighttpd。
    • web服务器接收用户的Request(请求)交给网站代码,或者接受请求反向代理到其他web服务器。

    4. 网站处理流程

    服务器接收到baidu.com的请求,通过后端语言交由控制器从模型里面查找,模型通过数据库返还数据给控制器。
    控制器再将数据交由视图模版,视图模板将数据组合成HTML,组合好之后发回控制器,并将代码发给浏览器。如下图

    MVC模型(mode)- 视图(view)-控制器(controller)

    5. 浏览器处理

    • HTML字符串被浏览器接受后被一句句解析
    • 解析到link 标签后重新发送请求获取CSS
    • 解析到script 标签后重新发送请求获取js,并且执行代码
    • 解析到img 标签后重新发送请求获取图片资源
    • 请求方式与第一次请求HTML过程相同,浏览器会把HTML会把里包含的链 接,图片资源等等再请求一次,所以浏览器会发很多请求

    当资源都到了之后 浏览器会根据HTML和css计算得到渲染树,将其绘制到屏幕上,JS也会被执行。

    6. 总结

    当用户在浏览器中输入baidu.com,浏览器会通过域名解析找到该域名的IP地址,并且向该IP地址的服务器发送请求HTML代码,服务器通过MVC将HTML代码返回给浏览器,浏览器根据服务器返回的HTML及HTML代码中资源,链接等计算得出渲染树并最终将其绘制在屏幕中

    相关文章

      网友评论

          本文标题:当用户在浏览器中输入了 baidu.com,页面展示百度首页,整

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