为什么是<img>?

    为什么是<img>?此类问题并不是我们每天都会遇到的。显然有人创造了它,定义了功能和属性,继而成为一种标准。标准的一个好处在于它是公开的,使得我们可以追溯诸如“ 为什么是<img>”这样的问题。

    Marc Andreessen在1993年2月25日信里建议添加一个新的标签<img>,信中举了一个例子 

<IMG SRC="file://foobar.com/foo/bar/blargh.xmb">

紧接着围绕这个提议展开了各种讨论。有人建议为了友好性,在图片无法显示的情况下应当显示文本,并使用REL属性来定义文本信息。有人坚实仍然使用<a>,仅在原有的基础上添加新的属性以区分是图片还是原来的链接。有的建议添加属性CONTENT-TYPE,来支持图片以外的多媒体类型,比如视频和音频。但是最终,Marc在信中回复,他们公司即向发布新版本的Mosaic浏览器,将会支持GIF格式和XBM格式的图片,此类图片的类型将会依据SRC属性中文件的扩展名来决定。

    正像之前所说的,这是一个大约发生在17年前的故事。17年来围绕着尖括号同样发生了许多重要的事情:

 

  • HTTP从版本0.9、1.0到现在的1.1,并一直在更新中。
  • HTML,当初连图片都不支持的基本数据格式,经历着不断的进化,从2.0、3.2、4.0到现在的5.0。而且绝大部分的古老网页仍然可以用现在的浏览器打开。
  • HTML一直是维系着浏览器厂商、作者和网络标准制定者通话的语言。许多成功的HTML版本的标准都是在其功能实现之后才得以完成的,即先实现功能,标准再得以完稿。
  • 没有一个浏览器从17年前一直幸存至今。
  • 一些17年前的操作系统仍旧存在,但是它们已经和现代网络没有任何交集了。
  • 许多人幸运的仍然健在,并且其中大部分仍参与网络标准的制定中;一些人甚至参与了1980年代或更早时期HTML语言的制定。
  • 与HTML同时代的数据格式和系统正渐渐被遗忘,诸如Andrew、Intermedia和HyTime……
     回到行文之初提到的那个问题,为什么是<img>?答案其实十分简单:当初Marc发布了的新浏览器就是如此实现的,此后它成为了标准。但是并不能简单得说有了实现就能成为标准,毕竟Andrew、Intermedia和HyTime同样也有实现。实现是必要的,却不是成为标准的充分条件。作者并没有暗示,标准完成前就已经存在了的实现就是最优的解决方案。Marc的<img>并不强制图片格式,不定义文本如何进行环绕,不支持文字提示,还存在和旧浏览器的兼容问题。而且17年后的今天,我们仍然纠结于内容的嗅探和安全问题。回到17年前在伟大的浏览器战争前,Marc毫不客气地说了句”MIME, someday, maybe",然后就义无反顾发布发布了他们的代码。

 

     那些最终成功的是那些发布代码的人们。 The ones that win are the ones that ship.

 

posted @ 2010-12-31 16:03  笑语  阅读(381)  评论(0编辑  收藏  举报