1、如何理解 HTML 语义化?
- 让人更容易读懂(增加代码可读性)
- 让搜索引擎更容易读懂,有助于爬虫抓取更多的有效信息,爬虫依赖于标签来确定上下文和各个关键字的权重(SEO)
- 在没有 CSS 样式下,页面也能呈现出很好地内容结构、代码结构
2、script 标签中 defer 和 async 的区别?
script:会阻碍 HTML 解析,只有下载好并执行完脚本才会继续解析 HTML。async script:解析 HTML 过程中进行脚本的异步下载,下载成功立马执行,有可能会阻断 HTML 的解析。defer script:完全不会阻碍 HTML 的解析,解析完成之后再按照顺序执行脚本。
下图清晰地展示了三种 script 的过程:
| script标签 | JS执行顺序 | 是否阻塞解析HTML |
|---|---|---|
script | 在 HTML 中的顺序 | 阻塞 |
script async | 网络请求返回顺序 | 可能阻塞,也可能不阻塞,取决于script下载完html是否解析完 |
script defer | 在 HTML 中的顺序 | 不阻塞 |
图解详情:www.growingwiththeweb.com/2014/02/asy…
3、从浏览器地址栏输入 url 到请求返回发生了什么
- 输入 URL 后解析出协议、主机、端口、路径等信息,并构造一个 HTTP 请求
-
DNS 域名解析 字节面试被虐后,是时候搞懂 DNS 了
-
TCP 连接
3次握手为什么需要三次握手,两次不行吗? 其实这是由 TCP 的自身特点可靠传输决定的。客户端和服务端要进行可靠传输,那么就需要确认双方的接收和发送能力。 第一次握手可以确认客户端的发送能力, 第二次握手,确认了服务端的发送能力和接收能力, 第三次握手才可以确认客户端的接收能力。不然容易出现丢包的现象。
-
发起HTTP请求
-
服务器处理请求并返回 HTTP 报文
-
浏览器渲染页面
-
断开TCP连接
4次挥手
参考文章: