从浏览器地址栏输入 URL 到显示的过程是怎么实现的?【冲击30K专栏03】

前端人

共 1060字,需浏览 3分钟

 · 2021-05-26

最近刚好换了工作,把最近面试被面的问题,以及现在大多数出现的面试题以一个专题的形式一次性总结,一天一题,现在总共汇总了150道题,如果这些题都能答出来人人都能冲击30k,每道题目答案没有多余扯皮的部分,就是单纯的答案。

今日题目:从浏览器地址栏输入 URL 到显示的过程是怎么实现的?

  • DNS解析,将域名地址解析为ip地址
  • 浏览器DNS缓存
  • 系统DNS缓存
  • 路由器DNS缓存
  • 运营商DNS缓存
  • 再找不到就递归搜索该网址
  • 如果找到了,就会 TCP连接:TCP三次握手
  • 第一次握手,由浏览器发起,告诉服务器,我要发送请求了
  • 第二次握手,由服务器发起,告诉浏览器我准备接受了,你发送吧
  • 第三次握手,由浏览器发送,告诉服务器,我马上发送了,准备接受吧
  • 发送请求报文
  • 发送HTTP协议的通信内容,即请求报
  • 接受响应
  • 响应报文
  • 渲染页面
  • 遇见HTML标记,浏览器调用HTML解析器解析成Token,并构建成dom树
  • 遇见style/link标记,浏览器调用css解析器
  • 遇见script标记,调用javascript解析器,处理script代码(绑定时间,修改dom树/css dom树)
  • 根据渲染树计算布局,计算每个节点的几何信息(布局)
  • 将各个节点颜色绘制到屏幕上(渲染) 注意:这5个步骤不一定按照顺序执行,如果dom树或cssdom树被修改了,可能会执行多次布局和渲染 往往实际页面中,这些步骤都会执行多次。
  • 断开连接:TCP的四次挥手
  • 第一次挥手,浏览器发起,发送给服务器,我东西发送完了(请求报文),你准备关闭吧
  • 第二次挥手,服务器发起,告诉浏览器,我东西接收完了(请求报文),我准备关闭了,你也准备吧
  • 第三次挥手,服务器发起,告诉浏览器,我东西发送完了(响应报文),你准备关闭吧
  • 第四次挥手,浏览器发起,告诉服务器,我东西接收完了, 我准备关闭了,你也准备吧

参考资料

  • http://r4v.cn/gqk4o
  • https://zhuanlan.zhihu.com/p/260125085
  • https://blog.csdn.net/xiaohu_Blog/article/details/109521828

说明

每天一到面试题,人人都能冲击30k+,点击↓关注【鬼哥】

当前进度【#003题】,如果你能点赞分享、鬼哥骑自行车也是开心的

浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报