".htm或.html扩展名 - 哪个是正确的,有什么区别?"

62

当我使用 .htm 或 .html 扩展名保存文件时,哪个扩展名是正确的?它们有什么不同?


10个回答

76

两者都没有错,这是个人偏好的问题。传统上,微软软件默认使用 htm,而*nix则更喜欢使用 html

正如oded在下面指出的那样,.htm的传统是从win 3.xx延续下来的,在那个时候文件扩展名仅限于三个字符。


15
这是由于在互联网刚兴起时,大多数人使用的平台是Windows 3.xx,并且文件存在8.3字符限制,因此无法使用.html扩展名。 - Oded
1
如果您的页面具有xhtml doctype,则可以将其保存为.xhtml文件,浏览器甚至会将该页面读取为application/xhtml+xml,但它目前尚不适用于Internet Explorer。 - Marco Luglio

26

主要,字符数量不同。

".htm"闻起来像是微软操作系统的味道,历史上该文件系统将文件名扩展名(文件名中点号后面的部分)限制为3个字符。

".html"则闻起来像是未经修改的操作系统的味道,这些操作系统没有这个限制,并且在当时被用于所有重要的互联网工作。

从实际角度来看,两者是等价的。

区别在于文化。一些人认为".html"更加正确。这些人倾向于看不起微软操作系统,并将".htm"视为它们限制的讨厌提醒。


2
作为一些额外的背景,早期的微软操作系统(不包括Windows 95以前)由于使用了FAT文件系统而具有此限制。这个限制通常被称为8.3文件名限制,它规定文件名可以在“点”之前有最多8个字符,并且之后有3个字符。顺便说一下,现在是2017年,除了某些特殊用例,我们都应该使用没有扩展名的语义URL :) - VKK

14
当您在本地保存文件时,差异并不重要 - 您的本地系统可能会将这两个文件扩展名视为可互换以供您的浏览器加载。原因是历史上基于 Windows 的系统使用 3 个字母的扩展名(htm),而基于 Unix 的系统使用 4 个字母的扩展名(html)。
在服务器端,涉及服务默认文件名时可能会有一些差异:

两个扩展名之间可能存在差异的情况是服务器默认文件名。当从服务器请求未指定文件名的 URL 时,例如 http://www.domain.dom/dirname/,服务器会返回与默认文件名匹配的请求 URL 的文件。常见的默认文件名示例包括 "index.html"、"index.htm"、"default.html"、"default.htm" 等。但是,管理员可以将服务器的默认文件名设置为任何他/她想要的名称。

请注意,服务器通常配置有多个默认文件名。

因此,如果您对服务器的默认文件名有任何级别的控制,则不应该存在问题。

这真的取决于服务器设置。 - kemiller2002

6

个人而言,我更喜欢使用 .html 后缀,但是正如其他人所说,两种格式都可以使用。

只需确保在同一网站上仅使用一种后缀。不要同时使用两种后缀! 链接到 mypage.html 与链接到 mypage.htm 不同。


只要所有链接使用与它们指向的文档相同的扩展名,混合两者是否会出现问题(除了可维护性和整洁度以外)?有没有任何原因呢? - Nicolas Miari

4
此外,请注意作为URI的一部分,文件扩展名并不起任何作用。实际上,它甚至不是一个文件扩展名,只是看起来像一个。由URI标识的资源类型在其名称中没有编码。相反,它是通过Content-Type HTTP头字段决定的。完全合法(但可能有点愚蠢)将位图图片作为myimage.html传递,反之亦然,将HTML页面作为index.png传递。这也是为什么有人认为文件扩展名根本不应该成为URI的一部分的原因。
Tim Berners-Lee先生在Hypertext Style: Cool URIs Don't Change中对此进行了详细阐述。

我相信文件名扩展名和文档内容类型之间的硬关联也来自Windows,对吧?如果我没记错的话,Mac经典文件附带了元数据,指定了哪个应用程序创建/打开它们。不确定Unix是否也是这样。 - Nicolas Miari

2
它们是完全可以互换的。如果我正确理解历史,那么在最初正确的扩展名是.html,但是当Windows 95出现时,它只能处理三个字符的扩展名。因此,.html根据某些标准是正确的,但实际上并不重要(大多数情况下...刚刚进行了快速的谷歌搜索,并找到以下内容)。但是有一个值得关注的领域,大多数主机服务器将要求您的默认起始页面命名为“index.html”,而不是“index.htm”。

2

我使用 .htm 后缀,我猜这样打字会更少些。或许这是因为我偏向于使用 Windows。


1

3个字符的扩展名限制仅适用于Windows。 - Amandasaurus

1

就个人而言,我更喜欢 .html,因为它的名称是“超文本标记语言”。.htm 是用来兼容某些旧版 Windows 系统,因为其文件名扩展名不能超过 3 个字符。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接