Favicon

Favicon是favorites icon的缩写，亦被称为website icon（网站图标）、page icon（页面图标）或urlicon（URL图标）。Favicon是与某个网站或网页相关联的图标。网站设计者可以多种方式建立这种图标，而目前也有很多网页浏览器支持此功能。浏览器可以将favicon显示于浏览器的地址栏中，也可置于书签列表的网站名前，还可以放在标签式浏览界面中的页标题前。 最初，定义一个favicon的方法是将一个名为“favicon.ico”的文件置于Web服务器的根目录下，Internet Explorer的收藏夹（即书签）可以自动显示该文件。 后来出现了一种更为灵活的方法，即使用HTML来为任何一个网页指示其图标所存储的位置。这种方法是通过在页面的<head>部分添加两个link元件来实现的。这样，任何一个适当大小的（16×16像素或更大）的图像都可以用作favicon。尽管如此，多数情况下仍然使用ICO格式。其他网页浏览器现在也支持PNG（便携式网络图片）格式，和GIF（图形交换格式）动画图像格式。 市面上多数浏览器同时支持上述两种方法。正因此，网络服务器要接受很多对“favicon.ico”文件的请求，即使该文件根本不存在。网站管理员对此很不满，因为这样会增加大量的服务器日志项，并导致很多不必要的磁盘读取和CPU、网络资源的占用。另一个常见的问题是，当清除浏览器的缓存后，favicon可能会消失。 1999年3月，Internet Explorer最早仅仅将favicon用于收藏夹（例如MSIE 5.0）。这产生了一些关于隐私问题的考虑，因为网站拥有者可以通过检查访问日志察看有多少人下载了favicon.ico文件，判断有多少人将他们的网站放入收藏夹中。然而，自从許多其他浏览器开始在每次访问时都将favicon显示在地址栏上，这就不再是一个问题了。 Favicon功能最早由微软创设，而微软公司的Internet Explorer网页浏览器会对每一个网站都请求favicon。微软支持的link标签不遵从World Wide Web Consortium（W3C，万维网联盟）的HTML建议[1]（页面存档备份，存于互联网档案馆），因为： rel属性必须包含一个用空格作分隔符的link类型的列表，所以一个包含两词的link类型不能被遵守标准的浏览器理解。 “.ico”文件类型（一种用于Microsoft Windows上图标的光栅格式）没有一个注册的MIME类型，而且似乎在当时也不能被多数浏览器理解。然而2003年，这一格式在IANA获得注册，其MIME类型是image/vnd.microsoft.icon，进而消除了此问题的第一部分。 在网站上使用保留地址（reserved location）与Architecture of the World Wide Web（互联网的结构）（页面存档备份，存于互联网档案馆）矛盾，同时被认为是link squatting（链接劫持）或URI squatting（URI劫持）。 Mozilla浏览器通过一种遵从Web标准的方法添加了对favicon的支持。它采用rel="icon"并允许网络设计人员添加任何支持的图像格式的favicon。例如<link rel="icon" type="image/png" href="/path/image.png" />。后来鉴于此功能将被用于所有新内容，多数浏览器都对此功能增加了支持。 根据《HTML 4.01 Specification W3C Recommendation 24 December 1999》，rel属性的取值仅有： Alternate Stylesheet Start Next Prev Contents Index Glossary Copyright Chapter Section Subsection Appendix Help Bookmark 如果要采用其他值，应当在head标签中的profile属性中进行自定义。W3C给出了一个建议：《How to Add a Favicon to your Site》（页面存档备份，存于互联网档案馆）。 简单地说： 在head标签中添加profile属性指向http://www.w3.org/2005/10/profile（页面存档备份，存于互联网档案馆）。 用link标签指向Favicon URI，rel值为icon 一个常见的错误是不指定profile。 过去，为保证favicon出现，网站设计者和开发者采用了多种方法。很难明确地保证favicon可以在所有电脑上显示，即使是用同一版本的一种浏览器。 下列代码另一个局限就是它把favicon关联到了某个特定的HTML或XHTML文档上。为避免这一点，favicon.ico文件应置于根目录下。多数浏览器将自动检测并使用它。 建议包含以下两行HTML代码： <link rel="shortcut icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon" /> <link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon" /> 然而，只有第一行是必须的，因为“shortcut icon”字符串将被多数遵守标准的浏览器识别为列出可能的关键词（“shortcut”将被忽略，而仅使用“icon”）；而Internet Explorer将会把它作为一个单独的名称（“shortcut icon”）。这样做的结果是所有浏览器都可以理解此代码。只有当希望为新浏览器提供另一种备用图像（例如动画GIF）时，才有必要添加第二行。 在HTML中，link元件必须在head元件里（在<head>和</head>之间）。 对于XHTML，link必须使用“ />”结束（或“></link>”），而不可以使用“>”结束。 href可以，但不必指向/favicon.ico的位置。它可以指向任何URL。 图像通常可以使用任何被浏览器支持的图像格式。 .ico文件格式通常可以被所有可以显示favicon的浏览器读取。 设置服务器，以发送正确的MIME标识： ICO 文件 image/vnd.microsoft.icon（或者亦可出于兼容性原因使用image/x-icon。然而最好使用IANA注册的MIME类型（页面存档备份，存于互联网档案馆），因为多数主流浏览器现在支持它） GIF 文件 image/gif PNG 文件 image/png 使用适当的分辨率和色深。 ICO：包括多种分辨率（最常使用的是16×16和32×32，Mac OS X有时使用64×64和128×128）以及位深（比特每像素）（多数使用4、8、24 bpp，即16、256和1600万色）。 GIF：使用16×16，256色。 PNG：使用16×16，256色或24位。 注意：当favicon.ico被置于文档根目录时，将会被一些不处理link元件的浏览器找到，即使没有您的站点上没有指向它的链接。 Favicon.ico - Make your OWN Icon bookmark for Internet Explorer. AccessFP. [2012-12-30]. （原始内容存档于2013-01-05）. If you want the icon to appear you must upload a file named favicon.ico into the Root directory...  McGrew, Darin. Web Authoring FAQ – 8.11. How can I have a custom icon when people bookmark my site?. htmlhelp.com. 26 April 2007 [23 February 2011]. （原始内容存档于2019-12-16）.  Heng, Christopher. What is Favicon.ico? Personalise Your Site's Bookmarks. thesitewizard.com. 7 September 2008 [23 February 2011]. （原始内容存档于2012-02-08）.  Creating favicons with Adobe Photoshop and GoLive. Adobe GoLive. [25 February 2011]. （原始内容存档于2003-12-07）.  W3C网络标准化组织关于如何添加favicon的建议（页面存档备份，存于互联网档案馆） 如何使用PHP添加favicon（页面存档备份，存于互联网档案馆）。 MSDN Library: Win32的图标（页面存档备份，存于互联网档案馆） Online favicon editor: 在线制作Favicon图标（页面存档备份，存于互联网档案馆） 开放目录项目中的“Image Generation:Favicons”（有些过时的信息） MSDN Library: 自定义站点图标（页面存档备份，存于互联网档案馆）