纯文本和超文本到底有什么区别?很多学网络安全的人,第一步就理解错了

张开发
2026/4/8 4:16:43 15 分钟阅读

分享文章

纯文本和超文本到底有什么区别?很多学网络安全的人,第一步就理解错了
纯文本和超文本到底有什么区别?很多学网络安全的人,第一步就理解错了很多人刚开始学 Web、安全或者前端基础时,容易把一个概念搞混:HTML 叫“超文本标记语言”,那 HTML 文件是不是“超文本文件”?这个问题,乍一看很像对的,实际上很容易把人带偏。因为在日常学习里,很多人会把下面这些概念混在一起:纯文本富文本超文本HTMLWord 文档网页文件结果就是:名词都听过,但真正问“它们到底有什么区别”,很多人说不清。今天这篇文章,我就站在网络安全工程师的视角,把这个问题讲透:什么是纯文本什么不是纯文本为什么.txt和.html都属于纯文本为什么 Word 文档反而不是纯文本对开发和安全人员来说,为什么纯文本更重要这篇文章看完,你后面再学:HTMLCSSJavaScriptHTTPWeb 漏洞代码审计很多基础概念会一下清楚不少。一、先说结论:HTML 虽然叫“超文本标记语言”,但 HTML 文件本身通常是纯文本这句话非常关键。很多新手一听到“超文本”,就本能以为 HTML 文件一定不是纯文本。其实不是这么理解的。你要分清两件事:1)“超文本”是描述能力也就是说,它描述的是:这个内容可以包含链接、结构、语义、页面组织能力。2)“纯文本”是存储形式也就是说,它说的是:这个文件底层是不是以纯字符方式保存的。所以 HTML 文件虽然叫超文本标记语言,但它保存到磁盘上的方式,通常依然是纯文本。比如下面这段 HTML:h1标题/h1p这是一段正文/pahref="https://example.com"点我/a它本质上就是一堆字符。你用记事本、VS Code、Notepad++ 打开,都能直接看到原始内容。所以从文件存储角度看,它是纯文本。二、什么叫纯文本?最简单的理解就是:纯文本只保存字符内容,不负责保存复杂样式。也就是说,纯文本文件里存的是“字”,而不是“字长什么样”。比如一句话:你好,世界纯文本只关心这几个字本身,不关心它是不是:48 号字体红色加粗居中带阴影带页边距这些“表现形式”,不是纯文本关注的重点。纯文本最典型的特点1. 只保存内容本身它记录的是字符,而不是复杂排版信息。2. 文件结构简单没有太多额外的格式元数据。3. 占用空间通常更小因为它不需要额外记录大量样式。4. 跨平台读取更直接不依赖复杂办公软件,也不容易因为格式兼容问题出怪事。三、哪些文件通常属于纯文本?大家最熟悉的是:.txt但别只盯着.txt。对开发、安全从业者来说,更常见的纯文本文件其实是这些:.txt.html.css.js.json.xml.py.php.java.conf.ini.log你会发现,很多程序代码、配置文件、日志文件,本质上都是纯文本。这也是为什么纯文本在开发和安全领域特别重要。四、什么不是纯文本?像这些,通常就不属于纯文本:Word 文档.doc/.docxExcel 文档.xls/.xlsxPPT.ppt/.pptxPDF(很多场景下也不是纯文本)图片音频视频这些文件不仅保存“内容”,还会保存很多附加信息,比如:字体颜色段落页边距图片位置表格样式页眉页脚动画批注目录结构这些东西一多,文件结构就不再是简单的纯字符了。五、为什么.txt文件发给别人后,格式经常保不住?这个现象很多人都见过。比如你在记事本里输入一段文字,然后把字体调大,看起来像这样:字很大行距变了显示效果变了你可能以为这些格式也会跟着文件一起走。但实际上传给别人后,对方打开一看,很可能只是普通默认样式。为什么?因为:纯文本文件保存的是内容,不是这些显示样式。换句话说,你本地看到的大号字体,很多时候只是“当前程序如何显示它”,不代表这些格式信息已经写进文件本身。所以纯文本最鲜明的一个特点就是:能传内容,但不一定保留复杂格式。六、为什么 Word 文档同样只写几个字,体积却比 TXT 大很多?这也是一个特别经典的问题。比如你在 TXT 文件里只写一句:你好啊文件可能只有几个字节。但如果你在 Word 里写同样的内容,文件可能一下就大很多。原因就在于:Word 保存的不只是文字本身,还保存了大量排版和文档结构信息。比如哪怕你什么都没特意设置,它也可能默认带着:页面大小页边距默认字体默认字号行距段落样式文档元信息兼容信息软件生成信息所以你看到的是“只写了几个字”,但文件实际存进去的东西远不止这几个字。图 1:纯文本与非纯文本的差别对比项纯文本非纯文本保存内容文字本身文字 + 样式 + 结构是否保留字体颜色等格式通常不保留可以保留文件结构简单复杂文件体积较小通常更大典型例子txt、html、css、jsdocx、pptx、xlsx七、那“超文本”到底该怎么理解,才不会和“纯文本”打架?这是最容易绕晕人的地方。你要把它们放在两个维度理解:1. 纯文本 / 非纯文本:看的是“文件怎么存”这是存储层面的分类。比如:纯文本:就是字符流保存非纯文本:包含复杂格式、二进制结构等2. 超文本:看的是“内容有没有链接和结构能力”这是内容表达能力的分类。比如 HTML 叫“超文本”,是因为它可以表达:链接跳转页面结构标签语义内容组织多页面之间的连接关系所以:HTML 可以同时是“超文本语言”,也是“纯文本文件”。这两者并不矛盾。八、为什么开发者几乎都偏爱纯文本?这是一个特别现实的问题。如果你是开发、安全或者运维人员,你会发现绝大多数核心工作都建立在纯文本上。原因很简单。1. 纯文本更轻没有多余格式,内容干净,文件小。这意味着:存储省空间传输效率更高打开速度快处理成本低2. 纯文本更适合程序处理程序最喜欢的就是结构简单、规则清楚的内容。比如:配置文件脚本页面源码日志报文JSON 数据这些如果都变成像 Word 那样复杂的结构,机器处理会麻烦得多。3. 纯文本更方便版本管理你用 Git 管理代码时,最适合的就是纯文本。为什么?因为纯文本方便做:diff 对比合并审计回滚追踪变更如果代码写在富文本里,那版本管理基本就废了。4. 纯文本更适合安全分析网络安全人员日常经常面对:HTML 源码JS 脚本HTTP 报文日志记录配置文件payload漏洞利用脚本这些内容一旦是纯文本,分析、检索、替换、提取、匹配都方便得多。所以从安全角度看,纯文本几乎是最友好的形式。九、为什么代码文件基本都是纯文本?因为代码的本质就是字符序列。比如一段 JavaScript:alert('hello');或者一段 Python:print("hello")它们本来就不需要“红色加粗宋体三号字”这种信息。代码要的是:

更多文章