Fe-interview: [软技能] 第28天 在浏览器中输入url到页面显示出来的过程发生了什么?

Created on 13 May 2019  ·  11Comments  ·  Source: haizlin/fe-interview

第28天 在浏览器中输入url到页面显示出来的过程发生了什么?

软技能

Most helpful comment

不邀自来, 实名反对以上所有答案, 我的答案

All 11 comments

DNS解析得到ip,通过ip向服务器发起tcp链接,发送请求,服务器返回数据,浏览器解析渲染显示,关闭连接。

这是一道面试中经常能看到的题目,过程其实挺长的,总结过来就是DNS域名解析拿到对应的域名解析,然后就是服务器端和客户端的三次握手建立数据传输通道,四次挥手关闭数据传输通道,客户端根据自己拿到的数据开始渲染页面。完毕

不邀自来, 实名反对以上所有答案, 我的答案

@ddzy 欢迎来共同学习

如果只是http的话,浏览器先查cache,如果有的话就直接处理response了,没有的话就会查服务器IP地址,怎么查呢,操作系统会去解析DNS,然后返回给浏览器,浏览器拿到后,建立TCP协议,发送request,服务器处理返回response,这里response可能会被cache,浏览器处理response

还有浏览器渲染流程

  1. dns查询
  2. 解析响应返回的html内容
  3. 生成dom树
  4. 生成cssom树
  5. 合并生成渲染树
  6. 计算布局
  7. 渲染

这题可以展开的部分很多,这里只能列一个大纲。详细的可以看上面大佬的博客,非常详细。

不邀自来, 实名反对以上所有答案, 我的答案

  • 用户在浏览器中输入网址后,浏览器会先对输入的地址进行解析。比如用的协议 http 还是 https
  • 之后会根据域名进行 IP 的寻址

    • 寻址先从缓存开始,如 host

    • 之后再访问 DNS 服务器,一层一层直至访问到根服务器

    • 服务器再把 IP 告诉客户端

  • 客户端拿到 IP 后发起请求

    • 与服务器进行 HTTP 连接建立(3 次握手)

  • 建立成功后服务器返回数据,浏览器进行渲染

    • DOM 树构建、CSSOM 树的构建、JavaScript 资源下载

    • CSS 的重排重绘,CSSOM 与 DOM 一起进行绘制

    • JavaScript 资源的阻塞

  • 渲染出页面

这是一道面试中经常能看到的题目,过程其实挺长的,总结过来就是DNS域名解析拿到对应的域名解析,然后就是服务器端和客户端的三次握手建立数据传输通道,四次挥手关闭数据传输通道,客户端根据自己拿到的数据开始渲染页面。完毕

还要先查查缓存

DNS解析得到ip,通过ip向服务器发起tcp链接,发送请求,服务器返回数据,浏览器解析渲染显示,关闭连接。

Was this page helpful?
0 / 5 - 0 ratings