输入url地址后

面试题

在浏览器地址栏输入地址,并按下回车键后,发生了哪些事情?

参考答案:

  1. 浏览器自动补全协议、端口
  2. 浏览器自动完成url编码
  3. 浏览器根据url地址查找本地缓存,根据缓存规则看是否命中缓存,若命中缓存则直接使用缓存,不再发出请求
  4. 通过DNS解析找到服务器的IP地址
  5. 浏览器向服务器发出建立TCP连接的申请,完成三次握手后,连接通道建立
  6. 若使用了HTTPS协议,则还会进行SSL握手,建立加密信道。使用SSL握手时,会确定是否使用HTTP2
  7. 浏览器决定要附带哪些cookie到请求头中
  8. 浏览器自动设置好请求头、协议版本、cookie,发出GET请求
  9. 服务器处理请求,进入后端处理流程。完成处理后,服务器响应一个HTTP报文给浏览器。
  10. 浏览器根据使用的协议版本,以及Connection字段的约定,决定是否要保留TCP连接。
  11. 浏览器根据响应状态码决定如何处理这一次响应
  12. 浏览器根据响应头中的Content-Type字段识别响应类型,如果是text/html,则对响应体的内容进行HTML解析,否则做其他处理
  13. 浏览器根据响应头的其他内容完成缓存、cookie的设置
  14. 浏览器开始从上到下解析HTML,若遇到外部资源链接,则进一步请求资源
  15. 解析过程中生成DOM树、CSSOM树,然后一边生成,一边把二者合并为渲染树(rendering tree),随后对渲染树中的每个节点计算位置和大小(reflow),最后把每个节点利用GPU绘制到屏幕(repaint)
  16. 在解析过程中还会触发一系列的事件,当DOM树完成后会触发DOMContentLoaded事件,当所有资源加载完毕后会触发load事件
相关推荐
酉鬼女又兒6 小时前
零基础入门计算机网络网际层核心:IP数据报发送与转发完整流程、静态路由配置方法、路由环路成因与解决方案及历年考研经典例题深度解析
网络·tcp/ip·计算机网络·考研·职场和发展
之歆6 小时前
Promise 基础技术深度解析:从回调地狱到链式调用
前端·okhttp·promise
甲维斯6 小时前
国产版“Codex”初体验,智谱ZCode很强啊!
前端·人工智能·ai编程
道友可好6 小时前
AI 怎么自己跑完一个 6 小时的任务?
前端·人工智能·后端
三品吉他手会点灯7 小时前
STM32F103 学习笔记-24-I2C-读写EEPROM(第2节)-I2C协议层介绍
笔记·stm32·学习
To_OC7 小时前
通义千问多模态生图踩坑记:我是如何把两个报错逐个干翻的
前端·aigc·vite
Bigfish_coding7 小时前
前端转agent-第一周【python】-02 FastAPI与Pydantic实战(TS/JS视角)
前端
秃头网友小李7 小时前
前端难点:Vue3 响应式遇上 Three.js / ECharts —— 为什么要用 shallowRef?
前端·vue.js
qq_195821657 小时前
6. 应用层协议实现:CoE协议栈集成、对象字典配置、PDO映射
java·服务器·网络
梦曦i7 小时前
Vite插件开发框架:14个实用插件与完整工具包
前端