html相关面试题
1:什么是 DOM 和 BOM?
DOM(Document Object Model)和 BOM(Browser Object Model)是 JavaScript 中常用的两个概念,用于描述浏览器中的不同对象模型。
DOM(Document Object Model):
- DOM 是表示 HTML 和 XML 文档的标准的对象模型。它将文档中的每个组件(如元素、属性、文本等)都看作是一个对象,开发者可以使用 JavaScript 来操作这些对象,从而动态地改变页面的内容、结构和样式。
- DOM 以树状结构组织文档的内容,其中树的根节点是
document
对象,它代表整个文档。document
对象有各种方法和属性,可以用来访问和修改文档的内容和结构。
BOM(Browser Object Model):
- BOM 是表示浏览器窗口及其各个组件的对象模型。它提供了一组对象,用于访问和控制浏览器窗口及其各个部分,如地址栏、历史记录等。
- BOM 的核心对象是
window
对象,它表示浏览器窗口,并且是 JavaScript 中的全局对象。window
对象提供了许多属性和方法,用于控制浏览器窗口的各个方面,如页面导航、定时器、对话框等。 - BOM 还提供了其他一些对象,如
navigator
(提供浏览器相关信息)、location
(提供当前文档的 URL 信息)、history
(提供浏览器历史记录)、screen
(提供屏幕信息)等。
2:简单描述从输入网址到页面显示的过程
- DNS解析
- 发起TCP连接
- 发送HTTP请求
- 服务器处理请求并返回HTTP报文
- 浏览器解析渲染页面
- 连接结束
DNS解析
DNS解析其实是一个递归的过程。
输入www.google.com
网址后,首先在本地的域名服务器中查找,没找到去根域名服务器查找,没有再去com顶级域名服务器查找,,如此的类推下去,直到找到IP地址,然后把它记录在本地,供下次使用。
发起TCP连接
TCP提供一种可靠的传输,这个过程涉及到三次握手,四次挥手。