浏览器原理-八股文

81 阅读3分钟

简述浏览器的工作原理

浏览器的工作原理涉及多个复杂的步骤,从用户在地址栏输入URL到完整页面的呈现,大致可以分为以下几个阶段:

  1. DNS解析: 当用户在地址栏输入URL并按下回车键后,浏览器首先需要将人类可读的域名转换为IP地址。这一过程是通过DNS(Domain Name System)查询完成的,浏览器会向DNS服务器发出请求,获取与该域名关联的IP地址。
  2. TCP握手: 获取到IP地址后,浏览器会尝试与服务器建立TCP连接,这是通过三次握手的过程实现的。一旦连接建立,数据就可以在客户端和服务器之间双向传输。
  3. TLS/SSL握手(HTTPS): 如果网站使用HTTPS协议,那么在TCP连接之上还会有一层TLS/SSL握手来加密数据传输,确保通信的安全性。
  4. HTTP请求: 连接建立完成后,浏览器会发送HTTP请求到服务器,请求特定的资源,如HTML文档。请求中包含了所请求的URL、HTTP版本、可接受的内容类型等信息。
  5. 服务器响应: 服务器接收到请求后,会解析请求并查找请求的资源。如果资源存在,服务器会创建一个HTTP响应包,包含状态码(如200 OK)、响应头和请求的资源数据,然后将其发送回浏览器。
  6. 接收数据: 浏览器接收到服务器响应后,开始解析HTML文档。这一过程中,浏览器会遵循“慢启动”机制,最初只接收有限量的数据,随后逐渐增加接收速率。
  7. 渲染页面: 浏览器解析HTML文档的同时,会构建DOM(Document Object Model)树。如果遇到CSS或JavaScript资源链接,浏览器会请求这些额外资源。CSS会用于构建CSSOM树,之后与DOM树结合形成渲染树。浏览器使用渲染树进行布局计算,确定元素的位置和大小,最后将渲染树绘制到屏幕上。
  8. 执行JavaScript: 如果页面中有JavaScript代码,浏览器会在适当的时机执行这些脚本,这可能会影响到DOM树和CSSOM树,从而可能触发重排和重绘。
  9. 交互: 页面完全加载并渲染后,用户可以与页面上的元素进行交互,如点击按钮、填写表单等。浏览器会处理这些事件并可能再次发送请求到服务器,更新页面内容。
  10. 持续加载和优化: 即使页面已经展示给用户,浏览器可能还在后台加载图像、视频等非关键资源,同时应用缓存策略和优化技术来提高性能。

Cookie、LocalStorage、SessionStorage区别

浏览器常用的本地存储技术是Cookie、LocalStorage、SessionStorage

  • cookie:存储数据量较小(最多4k),并且cookie只能被同源的页面访问共享。
  • SessionStorage:一般能存储5M数据,它在当前窗口关闭后就失效了,并且SessionStorage只能被同一个窗口的同源页面所访问共享。
  • LocalStorage:html5提供的一种浏览器本地存储的方法,一般也能够存储5M数据,它和sessionStorage不同的是,除非手动删除它,否则它不会失效,并且其也只能被同源页面所访问共享。