其他面试问题
在浏览器中输入 url 到页面展示发生了什么
- 地址解析
- 当输入一个 url 时,浏览器会进行地址解析,将 url 解析成协议、域名、端口号、路径等信息。
- 如果输入的 url 是搜索关键字,浏览器会将关键字发送给默认的搜索引擎。
- DNS 解析
- 浏览器会向 DNS 服务器发送域名请求,DNS 服务器会返回域名对应的 IP 地址。
- 浏览器会将 IP 地址缓存到本地,下次访问相同域名时,会先从本地缓存中查找。
- 建立 TCP 连接
- 使用获取到的 IP 地址和端口号,浏览器通过 TCP 协议与服务器建立链接。
- 在建立链接过程中,可能会经过三次握手(TCP 三次握手过程)。
- 发送 HTTP 请求
- 浏览器通过建立 TCP 链接,向服务器发送 HTTP 请求,请求特定资源,如:HTML、CSS、JS、图片等。
- 服务器处理请求
- 服务器接收到浏览器发送的HTTP请求后,会根据请求的内容进行相应的处理,可能涉及到数据库查询、业务逻辑处理等。
- 服务器响应
- 服务器将处理结果封装成 HTTP 响应,包括响应状态码、响应头、响应体等。
- 响应被服务器通过 TCP 链接发送给浏览器。
- 浏览器渲染
- 浏览器收到服务器的响应后,开始解析 HTML 文档。
- 解析过程中,如果遇到外部资源,如:CSS、JS、图片等,会再次向服务器发送请求,获取资源。
- 浏览器会构建 DOM 树、CSSOM 树,然后将 DOM 树和 CSSOM 树结合形成 Render 树,最终使用 Render 树进行页面的渲染。
- 页面显示
- 渲染完成后,浏览器将最终的页面呈现给用户。