你应该使用 .htm 还是 .html 文件扩展名?它们有什么区别,哪个文件扩展名是正确的?

257

.htm.html文件扩展名有何区别?

为什么会有两种扩展名?

哪一个是正确的?


2
重复:https://dev59.com/wnVC5IYBdhLWcg3w9F89 - nawfal
6
应该将其关闭为重复问题,而不是主观性问题。 - Michael Freidgeim
11个回答

283

简短回答

没有区别,它们完全相同。

详细解释

.htm和.html两者没有任何区别,它们的作用完全相同。选择哪种格式取决于个人偏好,只要您在命名文件时始终保持一致,使用任何一种都不会出问题。

根据Web服务器的配置,其中一个文件类型将优先于另一个文件类型。但这不应该是个问题,因为你很少会在同一个文件夹中同时拥有index.htm和index.html文件。

我们通常使用更短的.htm文件扩展名,因为文件扩展名通常只有3个字符。

更多信息请参考http://www.sightspecific.com/~mosh/WWW_FAQ/ext.htmlhttp://www.sightspecific.com/~mosh/WWW_FAQ/ext.htm

我认为我应该在这里补充一下:
.htm和.html文件之间只有一个微小的区别。考虑你的服务器上的路径:mydomain.example/myfolder。如果你在那个文件夹里创建了一个index.htm文件并且像这样打开:mydomain.example/myfolder/,它将变得混乱,并且会按照你的服务器中的原样输出文件,An image describing the bug with .htm files 但如果你在那里创建了一个index.html文件并在浏览器中打开该目录,则会加载该文件。 我在我的VPS上测试了这一点并发现了这个问题。 也许你可以通过某种方式设置你的服务器默认加载index.htm文件,但我想.html文件是浏览器每个目录中默认打开的文件类型。


37
并不一定是个人偏好 - 许多微控制器和嵌入式系统使用8.3命名约定。详情请参考Arduino官方文档中的SD卡注意事项维基百科上的8.3文件名 - emc
3
大多数网络服务器并不关心(如Apache、IIS、Nginx等)。极少数情况下,一些服务器会对此进行限制(这些通常受到操作系统、文件系统的限制或是非常老旧的服务器)。默认情况下,Web服务器托管与本地设置相同的文件名和目录结构。随网页发送的元数据定义了文件类型,因此Web服务器不需要传递扩展名,但有时会传递。请参见 URL 重写。 - TamusJRoyce
6
由于文件扩展名通常只有3个字符长,除了.js.json这两个最常用的Web文件扩展名。 - AJP
3
这个链接(sightspecific.com)已经失效了 :( - Vthechamp

116

都不用!

如果你在问:“一个网站访客更愿意输入htm还是html”,最好是给他们一个没有扩展名的描述性URL。如果他们习惯于访问yoursite/contact.html,而你将其更改为yoursite/contact.php,那么这个链接就会失效。如果你使用yoursite/contact/,那么当你切换技术时就没有问题。


82
每当我在现代网站看到以“.html”结尾的资源时,我总觉得自己穿越回了过去。 - Grant Wagner
4
这是个相当不错的想法。不过,存储和URL之间有区别吗?这不应该是服务器的工作吗? - xtofl
2
你可以自行决定如何实现yoursite/contact/ - 我在Apache上使用mod_rewrite或在Windows上使用URL路由。有些人使用文件夹结构,这并不理想 - 但仍然可以很容易地用mod_rewrite或URL路由替换。 - Fenton
3
@Andrew - 这实际上是个人偏好问题。选择你自己喜欢的方式即可。许多网站接受yoursite/contact,但会将其重定向到yoursite/contact/,因为他们更喜欢这样做。 - Fenton
4
“每当我在现代网站上看到以 .html 结尾的资源时,我总觉得自己穿越回了过去。” - 我喜欢这个声明的一件事是它是在2009年7月说的! - waqasahmed
显示剩余3条评论

30

.html通常用于新文件,.htm是DOS时代的遗物。


22

.html - DOS 已经死了很久。但最终这并没有太大的区别。


20
同样的事情......完全没有任何区别......在只有三个字母扩展名很常见的日子里,htm被使用了。

12
如果您计划将文件放在仅支持8.3命名约定的机器上,则应将扩展名限制为3个字符。

否则,最好选择更具描述性的 .html 版本。


9
那么我们是不是应该在所有源文件后面添加“l”以表示语言呢? ;) - xyz
61
没问题,直到有人创造了一种叫做“Ana”的语言。 - dan04
14
有一种编程语言叫做Ana 参见维基百科 - mgttlinger

5

我猜现在有点晚了,然而唯一需要区分的时候是在 MS Outlook (包括 2010) 中设置 HTML 签名的时候。它无法处理 .html 后缀,只能处理 .htm 后缀。


3

在功能和支持方面,两者是一样的。(大多数操作系统都可以识别这两种格式,大多数搜索引擎也都可以识别)

对于我日常使用来说,我选择使用.htm格式,因为它的输入长度比.html少25%。


你愿意不包含DOCTYPE吗? - Hello71
8
@Hello71: 我不理解。 - Wadih M.
任何自重的搜索引擎都不会使用该扩展名。 - rdb

2
这里有一些值得思考的东西。
如果您在网站上使用所有的.htm文件,现在您更改了编辑器,并且您的新编辑器输出所有文件都是.html扩展名。当您重新发布网站到服务器时,对于那些正在寻找.htm而不是新的.html扩展名的链接,包括Google在内,您的SEO位置/排名可能会受到影响。这假设您仍在使用旧编辑器的相同页面名称,这是有道理的。
总之……我的观点是,小心不要失去您已经建立起来的链接权重。所以我想在这个例子中,有一个坚持使用.htm的理由……但除此之外,它们似乎是相同的。
如果我说错了,请纠正我。
我提到所有这些的原因是因为当我意识到我可能会因新编辑器而损害网站的SEO时,我正在进行这个过程。
原始编辑器是MS Front Page,它总是输出.htm文件,现在已经过时了。新的编辑器“90 Second Web Builder 9”输出所有.html文件...幸运的是,他们一定考虑到了这一点,并包括了一种方法将输出扩展名更改回.htm。
无论如何,那是我的两分钱...希望能帮助到某些人..

1
如果你的网站URL以.htm或.html结尾,那么你做错了。语义化的URL更加用户友好,不会遇到你所描述的问题。没有理由让你的文件扩展名暴露给网站访问者。 - rdb

1

如今,计算机支持任何长度的文件类型,选择只取决于个人喜好。在 Windows 的早期版本中,只支持三个字母的文件类型,因此必须使用 .htm 扩展名,但现在不再需要。


9
你的意思是,在早期的Windows系统中只支持三个字母的文件扩展名。但Unix和Mac OS(甚至是OS X之前的版本)从一开始就没有这些限制,我们一直使用.html作为扩展名。 - Val

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