浏览器输入 url 到页面的展现,具体发生了些什么可以展开说下么

基本回答都是

  • 在浏览器地址栏输入URL
  • 浏览器解析URL获取协议,主机,端口,path
  • 浏览器组装一个HTTP(GET)请求报文
  • 浏览器获取主机ip地址
  • 打开一个socket与目标IP地址,端口建立TCP链
  • TCP链接建立后发送HTTP请求
  • 服务器将响应报文通过TCP连接发送回浏览器,浏览器接收HTTP响应
  • 根据资源类型决定如何处理(假设资源为HTML文档)
  • 解析HTML文档,构件DOM树,下载资源,构造CSSOM树,执行js脚本
  • 最后展现出来给用户

基本如果应聘者只回到了上述步骤,很多关键步骤(前端应该了解的知识点)没有提及,那么基本凉凉一半了。这里简述下笔者感觉,这其中你应该具体展开说明的。

  • 浏览器发送请求,是否需要查看缓存?是否请求资源在缓存中并且新鲜,跳转到转码步骤?如果资源已经缓存,是否新鲜?如何检查?怎么判断、http1.0 和 http1.1 的区别是什么,这些字段的优先级是怎么样子的。
  • 浏览器解析 url 获取协议,过程是什么?DNS 递归查询可否介绍下?
  • 建立 TCP 链接的三次握手是否可以介绍下
  • 服务器接受到请求,是否需要检查缓存?检查什么字段?什么样的缓存会需要服务端检查?
  • 服务端发送 TCP 链接,浏览器接受 http 相应后,根据什么来决定是否需要关闭连接?关闭 TCP 的四次挥手是什么?
  • 浏览器是否需要检查状态码,有哪些状态码?(笔者高频考码:304、200)
  • 在解析的时候,具体如何解析、是否有顺序。(重绘重排高频考题就在这里)
  • 总结如上、我们是否可以给出一些基本的网站优化手段???

上述题目的每一步展开,都将会是下一个面试题。

猜你喜欢

转载自www.cnblogs.com/smzd/p/12321565.html