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