前端-关于输入URL到页面显示以及变形问题

以下是我的答案
希望大家可以多多提出意见
--------------------------------------

1查询IP

浏览器搜索自己的 DNS 缓存(维护一张域名与 IP 地址的对应表);

搜索操作系统中的 DNS 缓存(维护一张域名与 IP 地址的对应表);

搜索操作系统的 hosts 文件( Windows 环境下,维护一张域名与 IP 地址的对应表);

操作系统将域名发送至 LDNS,查找成功则返回结果,失败则发起一个迭代 DNS 解析请求;

LDNS 向 Root Name Server (根域名服务器,其虽然没有每个域名的的具体信息,但存储了负责每个域,如 com、net、org等的解析的顶级域名服务器的地址)发起请求,此处,Root Name Server 返回 com 域的顶级域名服务器的地址;

LDNS 向 com 域的顶级域名服务器发起请求,返回 baidu.com 域名服务器地址;

LDNS 向 baidu.com 域名服务器发起请求,得到 www.baidu.com 的 IP 地址;

LDNS 将得到的 IP 地址返回给操作系统,同时自己也将 IP 地址缓存起来;

操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起来;

至此,浏览器已经得到了域名对应的 IP 地址。

4浏览器向服务器建立一个TCP链接

  三次握手

主机向服务器发送一个建立连接的请求(您好,我想认识您);

服务器接到请求后发送同意连接的信号(好的,很高兴认识您);

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

5浏览器发送HTTP请求

浏览器根据 URL 内容生成 HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等;

服务器接到请求后,会根据 HTTP 请求中的内容来决定如何获取相应的 HTML 文件;

服务器将得到的 HTML 文件发送给浏览器;

在执行 HTML 中代码时,根据需要,浏览器会继续请求图片、CSSJavsScript等文件,过程同请求 HTML

解析HTML

                    浏览器在解析html的时候会根据需要,继续请求引用的外部资源文件

浏览器根据html结构生成dom树,根据样式文件生成css树,然后根据dom树和cssom树生成render tree 根据这个渲染树渲染出页面

5浏览器收到响应报文关闭TCP链接 ,,或者稍后用在另一个请求上

6四次挥手

主机向服务器发送一个断开连接的请求(不早了,我该走了);

服务器接到请求后发送确认收到请求的信号(知道了);

服务器向主机发送断开通知(我也该走了);

主机接到断开通知后断开连接并反馈一个确认信号(嗯,好的),服务器收到确认信号后断开连接;

-----------------------------------------------------
变形问题
如何设计一个浏览器 应该考虑什么方面
这种大佬们有什么思路吗~~~~
全部评论
看看这个, https://github.com/skyline75489/what-happens-when-zh_CN/blob/master/README.rst
点赞 回复 分享
发布于 2017-10-01 19:08
缓存
点赞 回复 分享
发布于 2017-10-01 18:46
网络相关的可以多扯一点呀…如果面试官感兴趣的话
点赞 回复 分享
发布于 2017-10-01 16:50
关于输入url到出现页面这个过程,个人感觉少了中间基层几层的过程。对于如何设计一个浏览器,可以看看webkit技术内幕,大概讲下浏览器的主要几个模块就可以了吧我认为……
点赞 回复 分享
发布于 2017-10-01 16:35

相关推荐

07-19 13:28
长沙学院 Java
程序员小白条:你有面试就有希望,没面试自然就没希望,到时候就知道了,你问别人也没啥用处的
点赞 评论 收藏
分享
评论
点赞
60
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务