前端面试基础题库——关于底层原理的面试题

简介: 前端面试基础题库——关于底层原理的面试题



七十一、一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么

       1、浏览器查找域名对应的 IP 地址(DNS 查询:浏览器缓存->系统缓存->路由器缓存->ISP DNS 缓存->根域名服务器)

       2、浏览器向 Web 服务器发送一个 HTTP 请求(TCP 三次握手)

       3 服务器 301 重定向(从 HTTP://example.com  重定向到 HTTP://www.example.com

       4、浏览器跟踪重定向地址,请求另一个带 www 的网址

       5、服务器处理请求(通过路由读取资源)

       6、服务器返回一个 HTTP 响应(报头中把 Content-type 设置为 'text/html')

       7、浏览器进 DOM 树构建

       8、浏览器发送请求获取嵌在 HTML 中的资源(如图片、音频、视频、 CSS、JS 等)

       9、浏览器显示完成页面

       10、浏览器发送异步请求


七十二、什么是 TCP 连接的三次握手

       TCP 是因特网中的传输层协议,使用建立连接,完成三次握手, 与服务器开始传送。


       第一次握手:建立连接时,发送包(syn=j)到服务器,并进入等待状态, 等待服务器确 认; SYN:同步序列编号(Synchronize Sequence Numbers)。

       第二次握手: 收到 SYN 包,必须确认客户的 SYN(syn=j+1),同时自己也发送一个   SYN包(syn=k),即 SYN+ACK 包,此时服务器进入等待状态;

       第三次握手:客户端收到服务器器的 SYN+ACK 包, 向服务器发送确认包 ACK(ack=k+1), 此包发送完毕, 客户端和服务器进入(TCP 连接成功) 状态,完成三次握手。


       TCP 协议优点

       TCP 发送的包有序号,对方收到包后要给一个反馈,如果超过一定时间还没收到反馈就自动执 行超时重发,因此 TCP 最大的优点是可靠。


       TCP 协议缺点

       很简单,就是麻烦, 如果数据量比较小的话建立连接的过程反而占了大头,不断地重发 也会造成网络延迟, 因此比如视频聊天通常就使用 UDP,因为丢失一些包也没关系,速度流畅才是重要的。


七十三、为什么 TCP 连接需要三次握手四次挥手


       为什么是三次握手

为了防止已失效的连接请求报文段突然有送到了服务器, 因而产生错误,假设两次握手时,


客户发出的第一个请求连接报文段在某一网络节点长时间滞留, 以致延误到连接释放后才 到达服


务器。服务器收到失效的连接请求报文段后,认为是客户又发出一次新的连接请求。于是 向客户


发送确认报文段,同意建立连接, 此时在假定两次握手的前提下,连接建立成功。这样会导致服务器的资源白白浪费


       为什么是四次挥手

               TCP 协议是全双工通信, 这意味着客户端和服务器端都可以向彼此发送数据, 所以关


闭连接 是双方都需要确认的共同行为,假设是三次挥手时, 首先释放了客户到服务器方向的连


接, 此时 TCP 连接处于半关闭状态,这时客户不能向服务器发送数据,而服务器还是可以向客 户


发送数据。如果此时客户收到了服务器的确认报文段后,就立即发送一个确认报文段, 这会导致


服务器向客户还在发送数据时连接就被关闭。这样会导致客户没有完整收到服务器所发的报文段


七十四、介绍一下 websocket

       什么是 websocket

       websocket 是一种网络通信协议, 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通信的协议,这个对比着 HTTP 协议来说,HTTP 协议是一种无状态的、无连接的、单向的应用 层协议,通信请求只能由客户端发起,服务端对请求做出应答处理。 HTTP 协议无法实现服务器 主动向客户端发起消息,websocket 连接允许客户端和服务器之间进行全双工通信,  以便任一方都可以通过建立的连接将数据推送到另一端。 websocket 只需要建立一次连接,  就可以一直保持连接状态。

七十五、setTimeout、Promise、Async/Await 的区别

       事件循环中分为宏任务队列和微任务队列

               宏任务(macrotask):在新标准中叫 task

               主要包括:script(整体代码),setTimeout,setInterval,setImmediate,I/O,ui rendering 微任务(microtask):在新标准中叫 jobs

               主要包括:process.nextTick, Promise,MutationObserver(html5 新特性)


       setTimeout、Promise、Async/Await 的区别

               setTimeout 的回调函数放到宏任务队列里, 等到执行栈清空以后执行

               Promise.then 里的回调函数会放到相应宏任务的微任务队列里,等宏任务里面的同步代码 执  行完再执行

               async 函数表示函数里面可能会有异步方法,await 后面跟一个表达式

               async 方法执行时, 遇到 await 会立即执行表达式, 然后把表达式后面的代码放到微任务队 列里,让出执行栈让同步代码先执行


 

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
26天前
|
消息中间件 存储 缓存
大厂面试高频:Kafka 工作原理 ( 详细图解 )
本文详细解析了 Kafka 的核心架构和实现原理,消息中间件是亿级互联网架构的基石,大厂面试高频,非常重要,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:Kafka 工作原理 ( 详细图解 )
|
28天前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
28天前
|
存储 安全 Java
面试高频:Synchronized 原理,建议收藏备用 !
本文详解Synchronized原理,包括其作用、使用方式、底层实现及锁升级机制。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
面试高频:Synchronized 原理,建议收藏备用 !
|
2月前
|
存储 监控 算法
美团面试:说说 G1垃圾回收 底层原理?说说你 JVM 调优的过程 ?
尼恩提示: G1垃圾回收 原理非常重要, 是面试的重点, 大家一定要好好掌握
美团面试:说说 G1垃圾回收 底层原理?说说你 JVM 调优的过程  ?
|
2月前
|
SQL 存储 关系型数据库
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
老架构师尼恩在其读者交流群中分享了关于 MySQL 中 redo log、undo log 和 binlog 的面试题及其答案。这些问题涵盖了事务的 ACID 特性、日志的一致性问题、SQL 语句的执行流程等。尼恩详细解释了这些日志的作用、所在架构层级、日志形式、缓存机制以及写文件方式等内容。他还提供了多个面试题的详细解答,帮助读者系统化地掌握这些知识点,提升面试表现。此外,尼恩还推荐了《尼恩Java面试宝典PDF》和其他技术圣经系列PDF,帮助读者进一步巩固知识,实现“offer自由”。
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
|
1月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
65 1
|
3月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
2月前
|
负载均衡 算法 Java
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
40岁老架构师尼恩分享了关于SpringCloud核心组件的底层原理,特别是针对蚂蚁集团面试中常见的面试题进行了详细解析。内容涵盖了Nacos注册中心的AP/CP模式、Distro和Raft分布式协议、Sentinel的高可用组件、负载均衡组件的实现原理等。尼恩强调了系统化学习的重要性,推荐了《尼恩Java面试宝典PDF》等资料,帮助读者更好地准备面试,提高技术实力,最终实现“offer自由”。更多技术资料和指导,可关注公众号【技术自由圈】获取。
蚂蚁面试:Nacos、Sentinel了解吗?Springcloud 核心底层原理,你知道多少?
|
2月前
|
SQL 关系型数据库 MySQL
阿里面试:MYSQL 事务ACID,底层原理是什么? 具体是如何实现的?
尼恩,一位40岁的资深架构师,通过其丰富的经验和深厚的技術功底,为众多读者提供了宝贵的面试指导和技术分享。在他的读者交流群中,许多小伙伴获得了来自一线互联网企业的面试机会,并成功应对了诸如事务ACID特性实现、MVCC等相关面试题。尼恩特别整理了这些常见面试题的系统化解答,形成了《MVCC 学习圣经:一次穿透MYSQL MVCC》PDF文档,旨在帮助大家在面试中展示出扎实的技术功底,提高面试成功率。此外,他还编写了《尼恩Java面试宝典》等资料,涵盖了大量面试题和答案,帮助读者全面提升技术面试的表现。这些资料不仅内容详实,而且持续更新,是求职者备战技术面试的宝贵资源。
阿里面试:MYSQL 事务ACID,底层原理是什么? 具体是如何实现的?
|
2月前
|
消息中间件 Java Linux
得物面试:什么是零复制?说说 零复制 底层原理?(吊打面试官)
尼恩,40岁老架构师,专注于技术分享与面试辅导。近期,尼恩的读者群中有小伙伴在面试一线互联网企业如得物、阿里、滴滴等时,遇到了关于零复制技术的重要问题。为此,尼恩系统化地整理了零复制的底层原理,包括RocketMQ和Kafka的零复制实现,以及DMA、mmap、sendfile等技术的应用。尼恩还计划推出一系列文章,深入探讨Netty、Kafka、RocketMQ等框架的零复制技术,帮助大家在面试中脱颖而出,顺利拿到高薪Offer。此外,尼恩还提供了《尼恩Java面试宝典》PDF等资源,助力大家提升技术水平。更多内容请关注尼恩的公众号【技术自由圈】。
得物面试:什么是零复制?说说 零复制 底层原理?(吊打面试官)