text/html 媒体类型
本备忘录的状态
本文只是为Internet上的各种团体提供信息,而并没有指定任何一种Internet标准。您可以任意散发本文。
版权声明
Copyright (C) The Internet Society (2000). All Rights Reserved.
摘要:
本文概括了Html的发展历史,并参照相关的W3C建议定义了 "text/html" MIME 类型。本文将废弃以前IETF文档中HTML的定义,这些文档包括:RFC1866,RFC1867,RFC1980,RFC1942 以及 RFC2070。同时,本文也从IETF的标准跟踪协议(IETF Standards Track)中去除了HTML的定义。
本文是应W3C中HTML工作组的要求而预备的。您假如对本文有什么看法,可以给 www-html@w3.org 写信,另外,在 http://lists.w3.org/Archives/Public/www-html/ 有一个公开的邮件列表。
1. 背景介绍
从1990年起,HTML就在WWW信息业中作为基础部件得到使用,您可以在各种不同的非正式文档中找到对它的描述。text/html 媒体类型最初的正式定义出现是在1995年IETF HTML工作组的[HTML20]中,而其扩展版本在下面几个文档中被提及:[HTML30],[UPLOAD],[TABLES],[CLIMAPS] 以及 [I18N]。
IETF HTML工作组在1996年9月停止了工作,于是定义HTML的任务就落在了World Wide Web Consortium(W3C)身上。其他提出的扩展版本大部分都被收录进了[HTML32],而更多内容则被收录在[HTML40]中。[UPLOAD]中提出的multipart/form-data在[FORMDATA]中得到了说明。此外,改进版本HTML 4.0和XML 1.0[XHTML1]已经发展起来了。
[HTML32]上指出:"这份规范书给出了HTML 3.2的定义。HTML 3.2是针对1996年早些时候的建议而提出的,它将替代规范HTML 2.0(RFC1866)。"[HTML32]中接下来的规范说明了各个HTML版本的区别。
除了HTML标准的发展,许多额外的扩展、限制以及修改随着NCSA的Mosaic系统(译注:一种最早出现的浏览器)以及相互竞争的Netscape Navigator和Microsoft Internet EXPlorer一同普及开来。这些扩展在很多书以及在线帮助中都有相关的文档记录。
2. MIME媒体类型 text/html 的注册信息
MIME媒体类型名称: text
MIME子类型名称: html
必选参数: 无
可选参数:
字符集
可选参数"字符集"指的是一种字符编码,这种编码用一系列的字节代表HTML文档。任何在IANA(译注:专门负责Internet注册工作的组织)注册过的字符集都可以使用,但推荐使用UTF-8。尽管这个参数是可选的,我们强烈建议显式的制定这个参数。字符集的默认规则将在下面的第6部分讨论。
注重[HTML20]中对此的描述还有一个可选的"level(级别)"参数,实际上,这个参数从来没有使用过,在本文的描述中已被废弃不用。[HTML30]建议加入一个"version(版本)"参数,这个参数也从来没有使用过,因而也不会在本文中出现。
编码考虑:见本文档第4部分。
安全考虑:见本文档第7部分。
互用性考虑:
可以在尽可能广泛的不同性能的平台和设备上通用,这是HTML的设计目标。然而,在某些环境下(如只有有限显示能力平台),完整的HTML实现并不可行。当前正在进行的工作之一就是要开发出一个模块化的HTML,同时发展出一种可以识别设备是否受限制,并能在其上工作的功能。
由于HTML长期的发展都是分布式的,当前的Internet实践就要包含很多不同种类的HTML。text/html的解释程序必须被设计成与现在流行的浏览器"bug兼容"的,这样才能在当前的Internet上正常工作。
一个典型的例子:不同的版本可以用DOCTYPE的声明来区别,尽管有时DOCTYPE的声明本身会被忽略或误写。
发布的规范:
text/html媒体类型现在被W3C Recommendations组织所定义,最新发布的版本是[HTML401]。此外,[XHTML1]说明了与HTML 4.01相容的XHTML的使用概要,XHTML可能也会被标记为text/html。
使用这种媒体类型的应用:
第一个也是最普及的应用就是WWW(World Wide Web)。一般来说,HTML文档包含两部分内容,一是指向其他文档的URI引用(参考文献[URI]),二是要通过HTTP协议得到的媒体(参考文献[HTTP])。许多网关程序提供基于HTML的接口,使得其他程序可以通过这些接口使用底层的复杂服务。许多其他应用也使用HTML,因为这样可以用方便的、与平台无关的形式表示多媒体文档。
其他信息:
魔数(Magic Number):
没有专门的字符串来标识HTML文件。尽管如此,第5部分还是给出了一些识别HTML文件的指导。
文件扩展名:
扩展名"html"和"htm"最为常用,但是其他表示预处理文件的扩展名也很常用(译注:如ASP、PHP等)。
Macintosh机(译注:Apple公司于1984年推出的一种系列微机)上的文件类型码:TEXT
要获得更深入的信息,可以联系:
Dan Connolly
Larry Masinter
Intended usage:COMMON
"作者/改写"控制(Author/Change controller):
HTML规范是World Wide Web Consortium"s HTML工作组的成果。W3C在规范上拥有修改的支配权。
更多信息:
通过URI引用,HTML可以使HTML具有包含其他资源(图像、视频剪辑、Java的applet程序等)的能力。为了在单独的一个MIME对象中传输一个完整的HTML对象及其包含的资源,[MHTML]中提到的机制会被使用到。
3. 片段标识符(Fragment Identifiers)
URI规范中指出,片段标识符(URI的一部分,在一个"#"后)的语义学含义是指所获得数据的属性,规范中同时指出,片段标识符的格式和解释依靠于获得数据的媒体类型。
对于由text/html所标识的文档,片段标识符会为其分配相应的命名元素。在命名过程中,任何元素都可能有"id(标识)"属性,而A、APPLET、FRAME、IFRAME、IMG和MAP元素可能会拥有"name(名称)"属性。关于这一点,在[HTML40]的第12部分有具体描述。
4. 编码考虑
由于在HTML中使用字符实体引用(character entity references)有其实用性,使用宽字符集的文档将仍然用US-ASCII字符集表示,在传输过程中不会对其进行编码。但当使用非US-ASCII字符集传输text/html文档时,可能需要使用base64或者quoted-printable对其7位通道进行编码(原文:However, transport of text/html using a charset other than US-ASCII may require base64 or quoted-printable encoding for 7-bit channels)。
就像所有的MIME text子类型一样,规范的text/html文本中,必须用一系列CR字符(0x0D)以及一个LF字符(0x0A)来表示行中断。反过来也成立,即在text/html文本中一旦出现这样的CRLF列,则其必定代表一个行中断。在行中断以外的地方使用CR字符或者LF字符都是非法的。不管是否存在字符编码(字符集),这个规则都是适用的。
注重,HTTP协议答应数据在传输中不使用规范格式,而是使用其他非凡的行终止符。详情请参考[HTTP]的3.7.1部分。这个例外在HTML中普遍存在。
通过电子邮件传输的HTML文本仍然服从MIME的限制,这在[MHTML]的第10部分中有完整的讨论。
5. HTML文件的识别
几乎所有的HTML文件的前端都有"