〖HTML 故事〗html5 的过去

452 阅读10分钟

Tim Berners-Lee

蒂姆·伯纳斯-李,HTML的发明者,URL发明者,HTTP 发明者,万维网的发明者

1. 标记语言 — HTML的启蒙 SGML

置标语言,markup language。文本加上其它信息的标记。

markup 名字衍生于 marking up 置标,即原稿上做上印刷格式的标记,由专门的 markup men or d marker与校对人标志出用什么字体,字号等,再将原稿交给其他人进行手工排版或机器排版。当然过程参与者,都可能根据自己的经验、偏好进行标记。

1.1 William W. Tunnicliffe (1922.4.22 - 1996.9.12)

1967年, William W. Tunnicliffe 公开发表自己的计算机标记语言,当时他更喜欢称此为 generic coding通用编码。

1970年,Tunnicliffe 领导开发了一个名为 GenCode 的出版业标准

1986年, Tunnicliffe作为 国际标准化组织ISO(1947建立)第一任主席,推动发布了 SGML

# SGML: In memory of William W. Tunnicliffe (1996.9.12)(SGML:纪念 William W. Tunnicliffe)

1.2 Charles F. Goldfarb

1969年,Charles Goldfarb 在 IBM 领导一个小团队,开发了第一种标记语言 GML(Generalized Markup Language)

1974年,Charles Goldfarb 设计了 SGML,随后编写了第一个 SGML 解析器 ARCSGML。Goldfarb 在 ISO担任编辑,并努力将 SGML 发布为 ISO 8879 标准。

2. HTML诞生

1980年,物理学家 Tim Berners-Lee(1955.6.8) 在欧洲核子研究中心(CERN)在承包工程期间,为使CERN的研究人员使用并共享文档,他提出并创建原型系统ENQUIRE。一个类似维基百科的超文本在线编辑数据库。

1989年,Berners-Lee 在一份备忘录中提出一个基于互联网的 超文本系统

1990年末,制定HTML规范,并写出浏览器和服务器软件。同年,Berners-Lee与CERN的 数据系统工程师Robert Cailliau联合为项目申请资助,但未被CERN正式批准。在他的个人笔记中列举了“some of the many areas in which hypertext is used(一些使用超文本的领域)”,并把百科全书列为首位。

1991年底,HTML的首个公开描述出现于 一个名为HTML Tags的文件中。它描述了最初相对简单的18个HTML元素。除了超链接标签外,其他设计都深受CERN内部一个以SGML为基础的文件格式SGMLguid的影响。这些元素仍有11个存在于HTML 4中。

# HTML Tags;18个元素:<TITLE> <NEXTID 27> <A NAME=xxx HREF=XXX> <ISINDEX> <PLAINTEXT> <LISTING> <P> <H1>, <H2>, <H3>, <H4>, <H5>, <H6> <ADDRESS> <HP1> <HP2> <UL> <LI>

3. 万维网

1991年8月6日,他在alt.hypertext新闻组上贴了万维网项目简介的文章。这一天也标志着因特网上万维网公共服务的首次亮相。

1990年末,制定HTML规范,并写出第一个 网页浏览器WorldWideWeb(同时也是网页编辑器)和 第一个网页服务器软件。

蒂姆·伯纳斯-李 的另一个突破是将超文本嫁接到因特网上。在他的《编织万维网》一书中解释,他曾多次向技术社群的成员暗示这两种技术结合是可行的,但是却没有任何人接受他的建议,他最后只好自己解决了这个计划。他发明了三项关键技术:

  • 一个全球网络资源唯一认证的系统,统一资源标志符(URI);
  • 超文本标记语言(HTML);
  • 超文本传输协议(HTTP)。

1993年4月30日,欧洲核子研究组织CERN 宣布万维网对任何人免费开放,并不收取任何费用。两个月之后Gopher协议宣布不再是免费使用,造成大量用户从Gopher转向万维网。

Gopher,1991年被发明,由于耗用带宽较少,Gopher网络当时仍然是非常流行和制作精良的。

学者普遍认为,万维网的一个转折点始于1993年推出的Mosaic网页(图形接口)浏览器,Mosaic的图形使用接口让万维网成为迄今为止最受欢迎的互联网协议。

HTML 在2.0版本中,1996年8月 追加的客户端图像映射 RFC 才正式出现 <IMG>标签。Mosaic应该使用的是自己添加的标签,而后被 万维网联盟W3C 采纳。

# List of websites founded before 1995(1995年前建立的网站)Google 从*'BackRub'*引擎改名,新名字来源于一个数学大数googol(数字1后有100个0,即自然数10**100)单字错误的拼写方式,1997年9月15日注册了Google域名;百度为2000(2001)年

4. HTML时间线

1993年中期,互联网工程任务组(IETF)发布首个HTML规范的提案,由蒂姆·伯纳斯-李撰写。草案于6个月后过期。同样,戴夫·拉格特在1993年末提出的与之竞争的互联网草案“HTML+(超文本标记格式)”。没能出现HTML1.0

在HTML和HTML+的草案于1994年初到期后,IETF创建一个HTML工作组,并在1995年完成"HTML 2.0",这是第一个旨在成为对其后续实现标准的依据的HTML规范。

IETF,Internet Engineering Task Force,互联网工程任务组。一个开放的标准组织,1986年1月16日成立,负责开发和推广自愿互联网标准,特别是构成TCP/IP协议族(TCP/IP)的标准。它没有正式的会员资格或会员资格要求。 所有参与者和经理都是志愿者,尽管他们的工作通常由雇主或赞助商资助。

IETF丑闻蒂姆·伯纳斯-李在任万维网联盟(W3C)领导人期间,试图个人领导Web标准的发展。按照他后来在《编织万维网》(Weaving the Web)一书的说法,在经历太多的每个人都想表述对自己的创新的未来的看法的IETF会议而又无所作为后,他失败了。

在IETF的主持下,HTML标准的进一步发展因竞争利益而遭受停滞。自1996年起,HTML规范一直由万维网联盟(W3C)维护(再也不发IETF了),并由商业软件厂商出资。不过在2000年,HTML也成为国际标准(ISO/ IEC 15445:2000)。

4.1 版本时间线

  • HTML 2

  • HTML 3 1997年1月14日

  • HTML 4 1997年12月18日

  • HTML 5 2014年10月28日

XHTML是使用XML 1.0改写自HTML 4.01的独立语言。它不再被作为单独标准开发。

HTML 4 => HTML 5 中间穿插 XHTML的推行、XHTML2的被放弃(8票赞成,14票反对)、浏览器大战

4.2 XML 与 JSON

XML的前身是SGML,XML是从1995年开始有其雏形,并向W3C提案,而在1998年2月发布为W3C的标准(XML1.0)。

JSON格式是1999年《JavaScript Programming Language, Standard ECMA-262 3rd Edition》的子集合。2014 年,RFC 7159成为 JSON 互联网使用的主要参考标准。

YAML 1.2 版是 JSON 的超集;

5. HTML 5

尽管和SGML在标记上的相似性,HTML5的句法并不再基于它了,而是被设计成向后兼容对老版本的HTML的解析。

5.1 新的标签

标签描述
canvas 新元素
<canvas>标签定义图形,比如图表和其他图像。该标签基于 JavaScript 的绘图 API
新多媒体元素
<audio>定义音频内容
<video>定义视频(video 或者 movie)
<source>定义多媒体资源 <video> 和 <audio>
<embed>定义嵌入的内容,比如插件。
<track>为诸如 和 元素之类的媒介规定外部文本轨道。
新表单元素
<datalist>定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。
<keygen>规定用于表单的密钥对生成器字段。
<output>定义不同类型的输出,比如脚本的输出。
新的语义和结构元素
<article>定义页面独立的内容区域。
<aside>定义页面的侧边栏内容。
<bdi>允许您设置一段文本,使其脱离其父元素的文本方向设置。
<command>定义命令按钮,比如单选按钮、复选框或按钮
<details>用于描述文档或文档某个部分的细节
<dialog>定义对话框,比如提示框
<summary>标签包含 details 元素的标题
<figure>规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption>定义 <figure> 元素的标题
<footer>定义 section 或 document 的页脚。
<header>定义了文档的头部区域
<mark>定义带有记号的文本,高亮。
<meter>定义度量衡。仅用于已知最大和最小值的度量。
<nav>定义导航链接的部分。
<progress>定义任何类型的任务的进度。
<ruby>定义 ruby 注释(中文注音或字符)。
<rt>定义字符(中文注音或字符)的解释或发音。
<rp>在 ruby 注释中使用,定义不支持 ruby 元素的浏览器所显示的内容。
<section>定义文档中的节(section、区段)。
<time>定义日期或时间。
<wbr>规定在文本中的何处适合添加换行符。

5.2 新的API

5.3 W3C单独说明文档

  • 地理位置
  • 网页SQL数据库 ─ 本地SQL数据库(不再维护)
  • IndexedDB
  • 文件 ─ 处理文件上传和操纵文件
  • 目录和文件系统 ─ 这个API是为了满足客户端在没有好的数据库支持情况下存储要求
  • 文件写入 ─ 从网络应用程序向文件里写内容
  • 网络音频
  • ClassList
  • 网络加密
  • WebRTC

一个普遍的误解是HTML5能够在网页中提供动画效果,这是不对的,动画效果是需要配合JavaScript和CSS。然而静态HTML5配合CSS可以表示出复杂的排版结构而且原生支持与视频的混合与控制(控制一般由JavaScript执行),因此简单可以把HTML5单位时间的状态理解为动画的关键帧

参考

# 标记语言 百度百科 # 标记语言 wiki # Markup language wiki # International Organization for Standardization # Scribe # Standard Generalized Markup Language # IBM Generalized Markup Language # Charles Goldfarb # TeX # 万维网 # World Wide Web # Gopher (网络协议) # Google # 百度 # 互联网工程任务组 # XML # XML # JSON # JSON # 为什么都反对 XML 而支持使用 JSON? # 浏览器大战 # HTML5