html编译
浏览器拿到一段HTML字符串,编译不会直接把它变成你看到的编译页面。中间隔着一个叫“编译”的编译过程——虽然很多人更习惯叫它“解析”或“渲染”。
我最早意识到这件事,编译是编译写了一个 `
从字符到树
HTML编译的编译第一步,是编译把一堆字节变成一棵树。听起来抽象,编译拆开看很具体。
网络传过来的HTML是一串字节。浏览器先按编码(通常是UTF-8)把它们转成字符,再把字符按标签规则切成一个个“词”——`
` 是一个词,`class="intro"` 是一个词,`>` 也是一个词。这个过程叫词法分析。接着语法分析上场,把这些词拼成节点:元素节点、文本节点、注释节点。遇到 `
但HTML不是编程语言,它没有严格的语法。你少写一个闭合标签,浏览器不会罢工。它有一套容错规则,比如 `
` 里面不能再套 `
`,遇到嵌套它会自动闭合前一个。这些规则写在HTML规范里,每个浏览器都得遵守。所以同一段“烂代码”在Chrome和Firefox里渲染出来基本一样,不是巧合。
DOM树不是终点
解析完,你得到一棵DOM树。但DOM树只描述了结构,不知道每个节点长什么样、放在哪里。样式计算紧接着开始。浏览器把CSS规则和DOM节点匹配,算出每个节点最终的颜色、字号、边距。这一步有个细节:选择器是从右往左匹配的。`.nav li a` 会先找到所有 ``,再往上查父级是不是 `
样式算完,进入布局阶段。浏览器遍历DOM树,计算每个盒子在屏幕上的确切位置和尺寸。这里有个容易踩的坑:如果你在JS里先读 `offsetHeight` 再改样式,再读一次,浏览器会强制同步布局两次。性能就是这么掉的。
绘制与合成
布局之后是绘制。浏览器把每个节点画成像素,填充颜色、边框、阴影、文字。但绘制不是直接画到屏幕上,而是分成多个图层。比如一个带动画的元素会被提升为独立图层,由GPU单独合成。这就是为什么 `transform` 动画比 `left` 动画流畅——前者只触发合成,后者要重新布局和绘制。
最后,合成器把各图层按正确顺序拼起来,输出到屏幕。你看到页面了。
一个真实的观察
我做过一个测试:一个包含5000个 `
HTML编译不是“把代码变成页面”这么简单。它是一连串决策:容错、匹配、计算、分层。浏览器替你做了很多选择,有些是规范要求的,有些是性能权衡。理解这些,你写HTML时就会少一点“为什么没生效”的困惑,多一点“我知道它接下来会做什么”的笃定。
(责任编辑:热点)
-
凌晨两点,我盯着屏幕上的登录框,手边凉掉的咖啡已经没了热气。密码字典跑完最后一组组合,服务器返回的依然是冷冰冰的"Access Denied"。这种时候你才会明白,Web渗透根本不是电影里那种敲几下键
...[详细]
-
北极熊扫描器不是杀毒软件,也不是防火墙。它干的活儿更底层——盯着网络里每一台设备的开放端口,看谁在偷偷开门。 我第一次接触这东西是在一家做工业控制系统的公司。他们的运维老张给我看了屏幕上的日志,密密麻
...[详细]
-
渗透检测说白了就是让液体钻进缺陷里再爬出来。我第一次看老师傅做这个,他拿喷壶往焊缝上喷红色渗透剂,等了十分钟,擦干净,再喷白色显像剂。裂纹立刻变成一道红印子,跟变魔术似的。视频里要拍清楚的就是这几个步
...[详细]
-
2018年12月,小米MIUI论坛上有个帖子被顶到了首页。发帖人贴了一张截图:他的小米8在一天之内跑了6GB流量,但手机设置里显示"一元流量"功能已关闭。帖子底下跟了三百多条回复,有人骂"偷跑流量",
...[详细]
-
漏洞exp什么意思 你半夜三点盯着屏幕,某个CVE编号刚冒出来,论坛里已经有人甩出一段Python脚本。那个脚本就是exp——exploit的缩写,直译过来叫“利用”。说白了,exp就是一段能真正打
...[详细]
-
去年夏天我在长沙待了三天,住在五一广场附近。出门左转是茶颜悦色,右转还是茶颜悦色。隔条马路,一家挨着一家,密度高到让人觉得这品牌是不是在搞行为艺术。但奇怪的是,每家店都在排队。我站在队伍里数了一下,前
...[详细]
-
《死亡空间:坍塌》的1080p版本,在动画爱好者圈子里一直有个尴尬的定位。它不是那种随便找个在线网站就能点开看的片子,也不是蓝光收藏党会反复拿出来炫耀的经典。你要真去找,会发现资源散落在各种老论坛、磁
...[详细]
-
```html 三空间一资源 三空间一资源 去年冬天,我在杭州跟一个做社区团购的团队聊了三个小时。他们仓库里堆着三百箱赣南脐橙,卖不动,急得跺脚。可同一时间,三公里外一个老小区门口,几个
...[详细]
-
住建部官网的“全国建筑市场监管公共服务平台”俗称“四库一平台”)就是一级建造师查询的官方入口。域名是,别记错。很多人一搜“一建查询”就点进各种挂着“官网”字样的商业网站,结果查到的证书信息要么滞后要么
...[详细]
-
一个网站如果允许用户上传文件,却没把上传后的处理逻辑做严实,攻击者就能往服务器里塞一个后门脚本。这个脚本可能是 PHP、JSP、ASP 或者 Python,具体取决于服务器跑什么环境。传上去之后,攻击
...[详细]

页游源码网站
long and short 绘本儿童英文绘本动画
利用Metasploit进行攻击步骤包含哪些
郑州大学邮件系统
20吨反渗透设备供应商