当前位置: 首页 > 原理解释

浏览器是什么原理-浏览器工作原理

浏览器到底是个啥?别跟你讲啥架构,直接看它如何在浏览器里“吃”你的肉 大量人一听到浏览器就脑补啥复杂的分布式 WEB 服务,认定背后藏着啥 WebSocket、Node.js 要么 Redis 这种深奥的东西。
实际上说白了,这玩意儿就是个超级好用的“网页翻译官”,专门负责把你的代码翻译成浏览器能看懂的指令,再交给服务器去执行。它本质上就是 Chrome 的 fork,也就是从谷歌那套技术里扒拉出来的一个分支,支撑着几十亿个网页在这个小小的窗口里跑。 当你输入一个网址点进去,过程实际上就好办多了。
这玩意儿就是一个轻量级的进程,专门负责把你手写的 HTML、CSS 和 JS 代码当成一个整体,然后把它塞进自己的内存里,接着挂在服务器上面,形成所谓的“页面”。在你打开浏览器的这瞬间,几层 HTTP 请求就形成了。你点的那个链接,实际上是浏览器自己去发起的,它不需求等服务器先“喊”一声,立马就拉取 HTML 骨架、CSS 样式表和一堆 JS 脚本,这些文件在浏览器里找好位置,然后像拼图一样拼起来,形成一个整个的页面在你眼前展开。 到了这一层,大量新手好办晕。
实际上你根本不用理解啥叫“渲染树”要么“重绘回流”,出于它们都是给一般/平平用户看的黑盒,没人想让你懂。你真正关心的是,为啥点击了“回车”按钮,下面的文字突然冒了出来。
这时候浏览器内部正在进行一场类似“动画”的操作。它不会阻塞你的操作,比如你点击下拉菜单,下拉的过程中你还能持续打字,出于浏览器的渲染层是异步的,它负责一套一套地画出来,而不是你点击一下整个页面都卡住。
这就好比你去逛商场,你点哪儿去逛商场,商场里的人不会出于你点哪儿就都停下来排队。 这套机制叫“延迟渲染”,核心在于 DOM 操作不会一直在浏览器里跑。当你按下回车去加载页面时,浏览器不会立马去渲染每一行文字、每一个图标,而是先跑一个好办的样机,在浏览器里把页面结构给“画”出来,这时候你就能看到大约的样子了。
然后浏览器才启动真正去跑那几层复杂的 JavaScript,去解析 DOM,去把那些 HTML 标签变成立体图形,去处理那些数据请求,再去把那些乱七八糟的数据塞进 DOM 里。
这个过程叫“重绘”,是浏览器为了告诉你“嘿,这里有个新内容”而做的事件。
最终,浏览器会去跑 CSS,根据那几千上百个 CSS 规则,去给那些 HTML 元素上色、加阴影、做动画。
最终,浏览器就会把这三个层叠起来,把页面扔进你的屏幕里。 说到数据流动,大家最关心的就是它如何把服务器端的东西拿到本地来用。浏览器有个挺智慧的地方,它默认会去缓存那些你访问过的文件和脚本。当你第一次打开一个页面,浏览器会先把它需求的 HTML、JS 和 CSS 存到浏览器自己的磁盘里。
这时候,你点下一页,浏览器不会立马去下载全新的文件,而是先从自己磁盘里读,再放到内存里。
这样的益处是速度飞快,并且不用每次打开新页面都跑一遍下载流程。 不过,浏览器并不是一个死板的地方,它也不是跟服务器彻底对等的。浏览器是单向的,它把代码发给服务器,服务器负责把结局打回去。服务器那边肯定也有自己的存和缓存,就像我们平时用的网盘一样。服务器先把本地缓存的页面发给你,浏览器再从自己的硬盘里找,要是还是找不到要么忒慢,浏览器再去下载全新的。
这也解释了为啥有时候网页加载慢,有时候需求重新下载,有时候服务器缓存了,有时候浏览器缓存了。 实际上浏览器的设计哲学就挺巧妙,它把你和服务器隔开了,但又让你感觉像自己是作者一样。你知道 HTML 是做啥的,知道 CSS 能够管住样式,知道 JS 如何获取数据。浏览器就像一个贼听话的管家,它帮你打理一切,不会让你去执行那些复杂的逻辑,也不会让你去管数据的隐私保险,它只负责把你的想法变成屏幕上的东西。 并且,浏览器还有个挺有趣的特性,它被称为“多进程”。你打开一个网页,浏览器会先把页面拆分成一个前台进程,处理你的输入和交互;后台再开个多个后台进程,去处理页面里的各种资源和逻辑,比如加载图片、请求 API。
这样的益处是你点哪儿的按钮,彻底不会影响后台那些长任务在跑,哪怕后台那个 API 请求卡死半小时,你点击那个按钮也不会卡住。 自然,浏览器也不是完美的。它毕竟是人工写的,别看做得越来越好,但间或还是会遇到比如自动聚焦、自动填充信息、要么背景脚本偷跑这些小毛病。
有时候广告弹窗会莫名其妙弹出来,有时候网站的主题色可能和你设置的系统主题不一样。
这些间或出现的 bug 要么费事,也是浏览器这个庞大系统中的一局部,你不得不忍着它。 最终,浏览器之故此能成为网页世界的霸主,靠的不是它有多快,而是它能做得好、做得快、做得准。它把复杂的逻辑封装起来,让你能专注于写内容。它让你不用去理解网络协议,不用去怕服务器宕机,也不用揪心数据被黑客攻击。它就是个极简的工具,专门为了让你把想法变成现实而生。下次当你再次点开一个链接时,不妨在心里对自己说一声:“嘿,浏览器,你干得不错。”
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站