HTML考察的内容不多,这些是自己整理出来的内容,为了方便自己刷题,顺便分享出来,参考了很多文章和博客,希望能给大家一些帮助。
1.1 如何理解 HTML 语义化?
• 让⼈更容易读懂(增加代码可读性)。
• 让搜索引擎更容易读懂,有助于爬⾍抓取更多的有效信息,爬⾍依赖于标签来确定上下⽂和各个关键 字的权重(SEO)。 • 在没有 CSS 样式下,⻚⾯也能呈现出很好地内容结构、代码结构。
1.2 script 标签中 defer 和 async 的区别?
• script :会阻碍 HTML 解析,只有下载好并执⾏完脚本才会继续解析 HTML。
• async script :解析 HTML 过程中进⾏脚本的异步下载,下载成功⽴⻢执⾏,有可能会阻断 HTML 的解 析。
• defer script:完全不会阻碍 HTML 的解析,解析完成之后再按照顺序执⾏脚本。 script 标签 JS 执⾏顺 序 是否阻塞解析 HTML :
1.3 从浏览器地址栏输⼊ url 到请求返回发⽣了什么
1 输⼊ URL 后解析出协议、主机、端⼝、 路径等信息,并构造⼀个 HTTP 请求。
URL(Uniform Resource Locator),统⼀资源定位符,URL 主要由 协议、主机、端⼝、路径、查询参数、锚点6部 分组成
• 强缓存。 强制缓存就是向浏览器缓存查找该请求结果,并根据该结果的缓存规则来决定是否使⽤该缓存结果的过程。强缓存⼜分为 两种Expires和Cache-Control
• 协商缓存。协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识 决定是否使⽤缓存的过程。
2 DNS 域名解析 解析ip地址
DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。
DNS 是⼀个⽹络服务器,我们的域名解析简单来说就是在 DNS 上记录⼀条信息记录。
CDN(Content Delivery Network)就是利⽤DNS的重定向技术,DNS服务器会返回⼀个跟 ⽤户最接近的点的IP地址 给⽤户,CDN节点的服务器负责响应⽤户的请求,提供所需的内容。 HTML 3.TCP三次握手
为什么需要三次握⼿,两次不⾏吗?其实这是由 TCP 的⾃身特点可靠传输决定的。客户端和服务端要‘进 ⾏可靠传输,那么就需要确认双⽅的接收和发送能⼒。第⼀次握⼿可以确认客服端的发送能⼒,第⼆次握 ⼿,确认了服务端的发送能⼒和接收能⼒,所以第三次握⼿才可以确认客户端的接收能⼒。不然容易出现 丢包的现象。
• 客户端发送⼀个带 SYN=1,Seq=X 的数据包到服务器端⼝(第⼀次握⼿,由浏览器发起,告诉服务器 我要发送请求了)
• 服务器发回⼀个带 SYN=1, ACK=X+1, Seq=Y 的响应包以示传达确认信息(第⼆次握⼿,由服务器 发起,告诉浏览器我准备接受了,你赶紧发送吧)
• 客户端再回传⼀个带 ACK=Y+1, Seq=Z 的数据包,代表“握⼿结束”(第三次握⼿,由浏览器发送, 告诉服务器,我⻢上就发了,准备接受吧)
4 发送HTTP请求报⽂
5 服务器处理请求并返回 HTTP 报⽂。
每台服务器上都会安装处理请求的应⽤——Web server。常⻅的web server产品有apache、nginx、IIS、 Lighttpd等。
6 浏览器解析渲染⻚⾯
7 断开 TCP 连接
• 发起⽅向被动⽅发送报⽂,Fin、Ack、Seq,表示已经没有数据传输了。并进⼊ FIN_WAIT_1 状 态。 (第⼀次挥⼿:由浏览器发起的,发送给服务器,我请求报⽂发送完了,你准备关闭吧)
• 被动⽅发送报⽂,Ack、Seq,表示同意关闭请求。此时主机发起⽅进⼊ FIN_WAIT_2 状态。 (第⼆ 次挥⼿:由服务器发起的,告诉浏览器,我请求报⽂接受完了,我准备关闭了,你也准备吧)
• 被动⽅向发起⽅发送报⽂段,Fin、Ack、Seq,请求关闭连接。并进⼊ LAST_ACK 状态。 (第三次 挥⼿:由服务器发起,告诉浏览器,我响应报⽂发送完了,你准备关闭吧)
• 发起⽅向被动⽅发送报⽂段,Ack、Seq。然后进⼊等待 TIME_WAIT 状态。被动⽅收到发起⽅的报⽂ 段以后关闭连接。发起⽅等待⼀定时间未收到回复,则正常关闭。 (第四次挥⼿:由浏览器发起,告诉 服务器,我响应报⽂接受完了,我准备关闭了,你也准备吧
参考文章
这些文章都写的很好,很详细
做了一份前端面试复习计划,保熟~ - 掘金 (juejin.cn)
从URL输入到页面展现到底发生什么? - 掘金 (juejin.cn)
面试题博客推荐
这两个网址是我常用的刷题的网站,都是些大佬做的
前端常见面试题总结 | 大厂面试题每日一题 (shanyue.tech)
资源
因为我习惯用ipad反复背题,所以整理了pdf版本和goodnotes版本(会不定时更新)需要的小伙伴可以评论区或者私信踢我(无偿),直接放这儿不知道会不会不妥。