HTML、XML、JSON 是什么?有什么区别?又是做什么的?

在学习前端开发或者理解互联网工作原理的过程中,我们经常会遇到三个非常重要的概念:HTML、XML 和 JSON。它们看起来有点像,但其实干的事情完全不同。


🏁 一、他们是谁?什么时候诞生的?

名称全称诞生时间谁发明的用途
HTMLHyperText Markup Language1991Tim Berners-Lee(万维网之父)构建网页
XMLeXtensible Markup Language1998W3C(万维网联盟)存储/传输结构化数据
JSONJavaScript Object Notation2001(流行于2005年后)Douglas Crockford数据交换,前后端通信

🧱 二、他们长得像吗?

是的,三者都使用了“结构化的标记”或“对象形式”,但内容和目的是完全不同的!

示例对比:我们想表示一个用户的信息

✅ HTML(展示内容给人看)–超文本标记语言
<h1>用户信息</h1>
<p>姓名:小明</p>
<p>年龄:18</p>
✅ XML(结构化的数据,用给程序)–可扩展标记语言
<user><name>小明</name><age>18</age>
</user>
✅ JSON(轻量级数据,前后端通信)
{"name": "小明","age": 18
}

🔍 三、他们是干什么的?

项目HTMLXMLJSON
用来干嘛?构建网页,给人看存数据、传数据,给程序用前后端通信传数据
目标对象浏览器、人类系统、机器、开发者JavaScript、前端、后端
能不能显示页面?✅ 可以❌ 不行❌ 不行
可读性✅ 人能读✅ 稍复杂✅ 简洁易读
是否轻量❌ 偏重❌ 偏重✅ 超轻量
常用场景网页开发配置文件、旧系统数据交换Web 接口、前端开发

🚀 四、他们存在的意义是什么?

✅ HTML:网页的骨架和展示者

  • 是所有网页的基础
  • 决定了页面的结构和内容怎么展示
  • 搭配 CSS 和 JavaScript 构成完整的网页

✅ XML:数据传输时代的“统一语言”

  • 被设计用来替代各种杂乱无章的自定义格式
  • 可以自定义标签,结构清晰,机器可读
  • 在配置文件、办公文档、金融系统中仍在大量使用

✅ JSON:现代互联网的“数据快递”

  • 比 XML 更简单轻量
  • 和 JavaScript 配合天衣无缝,前端能直接读写
  • 几乎成为今天前后端通信的“标准格式”

🎯 五、它们之间是什么关系?

可以这么理解:

  • HTML 是网页展示的“容器”
  • XML 和 JSON 是网页背后传来的“内容”
  • 以前我们用 XML 装数据,现在用 JSON 装得更多,因为它更快更轻
  • HTML 不负责存数据,它只负责“怎么把内容展示出来”

比喻一下:

想象你点了一份外卖:

  • HTML 是你的餐盘和桌子 —— 把饭摆出来、呈现出来
  • XML 或 JSON 是送来的饭菜本身 —— 真实的数据和内容

📌 六、总结一张表搞清楚

特点/比较HTMLXMLJSON
是否用于展示✅ 是❌ 否❌ 否
是否用于存/传数据❌ 否✅ 是✅ 是
是否自定义标签❌ 否(固定)✅ 是❌(对象结构)
语法复杂度中等
是否人/机器都能读✅ 是✅ 是✅ 是(更轻)
使用频率(现代开发)✅ 高⬇ 减少✅ 非常高
常见在哪些地方网页结构配置、文档、老系统前后端接口,移动开发

🎉 七、最后一口气总结:

  • HTML 负责网页的“外貌”
  • XML 和 JSON 负责网页的“内容”
  • XML 是过去的数据格式标准,适合严谨的场景
  • JSON 是今天最流行的数据交换格式
  • 三者各有用途,配合使用,构成现代互联网的基础

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/82861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML5 全面知识点总结

一、HTML 基础概念 HTML&#xff1a;超文本标记语言&#xff0c;用于创建网页和 Web 应用的结构。 超文本&#xff1a;可以包含文字、图片、音频、视频、链接等多种媒体。 标记语言&#xff1a;通过标签标记网页的各个部分。 二、HTML5 的新特性&#xff08;区别于 HTML4&am…

记录一个难崩的bug

1.后端配置了 Filter 过滤器&#xff0c;如果再配置了Configuration ,那么会出现冲突吗&#xff1f; 过滤器与Configuration类本身无直接冲突&#xff0c;但需注意注册机制、执行顺序和依赖管理。通过显式控制过滤器的注册方式和优先级&#xff0c;结合Spring Security的链式配…

RabbitMQ 与其他 MQ 的对比分析:Kafka/RocketMQ 选型指南(二)

四、三者性能大比拼 4.1 吞吐量 吞吐量是衡量消息队列处理能力的重要指标&#xff0c;它反映了在单位时间内消息队列能够处理的消息数量。在这方面&#xff0c;Kafka 表现最为出色&#xff0c;其独特的设计使其能够轻松处理每秒数百万条消息 。Kafka 采用分布式架构和分区机制…

【C】箭头运算符

在C语言中&#xff0c;p_tone->power_off 是一种通过指针访问结构体成员的方法&#xff0c;称为箭头运算符&#xff08;->&#xff09;。它主要用于以下场景&#xff1a; 1. 语法解释 p_tone&#xff1a;是一个指向结构体&#xff08;或联合体&#xff09;的指针。powe…

【Unity】 HTFramework框架(六十六)缺省的运行时组件检视器

更新日期&#xff1a;2025年5月29日。 Github 仓库&#xff1a;https://github.com/SaiTingHu/HTFramework Gitee 仓库&#xff1a;https://gitee.com/SaiTingHu/HTFramework 索引 一、缺省的运行时组件检视器1.自定义运行时组件检视器 二、使用缺省的运行时组件检视器1.定义组…

AI和大数据:是工具,还是操控人心的“隐形之手”?

AI和大数据&#xff1a;是工具&#xff0c;还是操控人心的“隐形之手”&#xff1f; 开场白&#xff1a;聊点现实的 在这个数据至上的时代&#xff0c;我们的生活被AI和大数据悄然改变。从电商推荐、短视频算法&#xff0c;到招聘筛选、智慧城市&#xff0c;它们像一个贴心的…

k8s部署ELK补充篇:kubernetes-event-exporter收集Kubernetes集群中的事件

k8s部署ELK补充篇&#xff1a;kubernetes-event-exporter收集Kubernetes集群中的事件 文章目录 k8s部署ELK补充篇&#xff1a;kubernetes-event-exporter收集Kubernetes集群中的事件一、kubernetes-event-exporter简介二、kubernetes-event-exporter实战部署1. 创建Namespace&a…

Apache 高级配置实战:从连接保持到日志分析的完整指南

Apache 高级配置实战&#xff1a;从连接保持到日志分析的完整指南 前言 最近在深入学习 Apache 服务器配置时&#xff0c;发现很多朋友对 Apache 的高级功能还不够了解。作为一个在运维路上摸爬滚打的技术人&#xff0c;我想把这些实用的配置技巧分享给大家。今天这篇文章会带…

【Stable Diffusion 1.5 】在 Unet 中每个 Cross Attention 块中的张量变化过程

系列文章目录 文章目录 系列文章目录前言特征图和注意力图的尺寸差异原因在Break-a-Scene中的具体实现总结 前言 特征图 (Latent) 尺寸和注意力图(attention map)尺寸在扩散模型中有差异&#xff0c;是由于模型架构和注意力机制的特性决定的。 特征图和注意力图的尺寸差异原…

【监控】Prometheus+Grafana 构建可视化监控

在云原生和微服务架构盛行的今天&#xff0c;监控系统已成为保障业务稳定性的核心基础设施。作为监控领域的标杆工具&#xff0c;Prometheus和Grafana凭借其高效的数据采集、灵活的可视化能力&#xff0c;成为运维和开发团队的“标配”。 一、Prometheus Prometheus诞生于2012…

替代 WPS 的新思路?快速将 Word 转为图片 PDF

在这个数字化办公日益普及的时代&#xff0c;越来越多的人开始关注文档处理工具的功能与体验。当我们习惯了某些便捷操作时&#xff0c;却发现一些常用功能正逐渐变为付费项目——比如 WPS 中的一项实用功能也开始收费了。 这款工具最特别的地方在于&#xff0c;可以直接把 W…

CodeTop之数组中的第K个最大的元素

题目链接 215. 数组中的第K个最大元素 - 力扣&#xff08;LeetCode&#xff09; 题目解析 算法原理 解法一: 直接理由java内部的排序函数,Arrays.sort()进行排序, 然后我们直接返回第k个最大的元素 nums[nums.length-k] 解法二: 使用堆 我们先把所有元素丢到大根堆里面…

AI任务相关解决方案1-基于NLP的3种模型实现实体识别,以及对比分析(包括基于规则的方法、CRF模型和BERT微调模型)

大家好,我是微学AI,今天给大家介绍一下AI任务相关解决方案1-基于NLP的3种模型实现实体识别,以及对比分析。本文将深入探讨三种不同的命名实体识别(NER)方法,包括基于规则的方法、CRF模型和BERT微调模型,用于识别文本中的地名(LOC)、机构名称(ORG)和人名(PER)实体。通过系统…

IP动态伪装开关

IP动态伪装开关 在OpenWrt系统中&#xff0c;IP动态伪装&#xff08;IP Masquerading&#xff09;是一种网络地址转换&#xff08;NAT&#xff09;技术&#xff0c;用于在私有网络和公共网络之间转换IP地址。它通常用于允许多个设备共享单个公共IP地址访问互联网。以下是关于O…

【MySQL】第10节|MySQL全局优化与Mysql 8.0新增特性详解

全局优化 mysql server参数 1. max_connections&#xff08;最大连接数&#xff09; 含义&#xff1a;MySQL 服务允许的最大并发连接数&#xff08;包括正在使用和空闲的连接&#xff09;。超过此限制时&#xff0c;新连接会被拒绝&#xff08;报错 Too many connections&am…

VS Code 插件 Git History Diff

插件名 进命令行&#xff0c;进Git自己那个分支 查看分支 提交到Git的后想再把另一个也提交到那个分支&#xff0c;用这个命令

Shell脚本中的常用命令

一.设置主机名称 文件设置 文件开机时已读取所以要重新进入 命令更改&#xff08;即使生效&#xff09; 二.网络管理命令 1.查看网卡命令 设置网卡 1&#xff09;DHCP工作模式 2)静态IP 3&#xff09;修改网卡信息 三.简单处理字符 1.打印连续数字 连续打印3个数字 指定打…

C++ 中 std::wstring::c_str() 的潜在风险与安全使用指南

一、问题背景 在开发过程中&#xff0c;我们经常会遇到不同接口之间的数据传递问题。例如&#xff0c;当调用某个接口时&#xff0c;需要传入一个字符串指针作为数据接收的缓冲区&#xff0c;但外围接口使用的是 std::wstring 类型。此时&#xff0c;如果直接将 std::wstring:…

‘js@https://registry.npmmirror.com/JS/-/JS-0.1.0.tgz‘ is not in this registry

解决方法&#xff1a; 1. npm cache clean --force 2.临时切换到官方源 npm config set registry https://registry.npmjs.org/ npm install js0.1.0 npm config set registry https://registry.npmmirror.com/ # 切换回镜像源

ubuntu24 安装MongoDB-6.0.24 数据库操作步骤和配置参数说明

目录 1 下载MongoDB软件 2 操作系统信息 3 MongoDB 软件安装步骤 4 编写mongodb的配置文件 5 生成keyfile 6 使用mongo用户启动mongodb服务 7 设置开机启动(mongo用户) 8 安装MongoDB shell&#xff0c;因为MongoDB-6.0.24 已经移除mongo命令 1 下载MongoDB软件 https:…