“.html”和“.xhtml”扩展名有什么区别?“XHTML”是一种标记语言,而不是不同的扩展名。

7
什么是 .html.xhtml 文件扩展名的区别?
使用 .xhtml 扩展名有什么好处?
为什么我们不使用 .xhtml 扩展名,仅仅因为 IE 的原因吗?
IE 8 中的 .xhtml 扩展名怎么样?
除了 IE 之外,其他浏览器是否支持 .xhtml?如果是,那么当所有浏览器都支持 .xhtml 扩展名时,我们将获得什么好处。我们会停止使用 .html 吗?
为什么我们使用 XHTML doctype,但将这些文件保存为 .html 扩展名?

如果您想了解如何使用XHTML文档类型作为HTML发送内容,请查看http://hixie.ch/advocacy/xhtml。 - Ms2ger
6个回答

14

如果通过HTTP提供服务,文件扩展名就没有意义了。唯一重要的信息是Content-Type标题字段,其中指定了资源的媒体类型

但是当从本地文件系统提供服务时,媒体类型通常由文件扩展名标识。

编辑

我认为即使是XHTML,也为什么要使用扩展名.html的原因是因为XHTML只是带有XML语法的HTML,每个人都习惯于在HTML文档中使用.html。(虽然大多数XHTML文档实际上被视为HTML提供服务,因为媒体类型text/html无论文档类型声明说什么,都表示HTML。)

但同样地,通过HTTP请求时,扩展名并不必要。在HTTP中,Content-Type标题字段告知资源应如何解释其媒体类型。因此理论上你可以使用任何扩展名,甚至不使用扩展名(当使用内容协商时非常有用)。


然而,扩展名通常会影响Content-Type。 - Ms2ger
1
@ms2ger:不,文件扩展名绝对不会影响Content-Type。 - Gumbo
1
在服务器中,文件扩展名通常会映射到 Content-Type 上(例如通过 Apache 的 "AddType" 指令或其 "mime.types" 文件)。因此,在某种程度上可以说它会“产生影响”。但您是正确的,这不会改变文件的内容(如果改变文件内容,那确实非常奇怪)。 - Wevah
@Wevah:您说得没错,但服务器工作在文件系统上。;-) - Gumbo

3

请使用与MIME类型相匹配的扩展名:

  • .xhtml 适用于 application/xhtml+xml 文档
  • .html 适用于 text/html 文档

例如,ePub3 需要使用 .xhtml 扩展名:

强烈建议您将所有 EPUB 内容文档使用 .xhtml 扩展名。如果没有这个扩展名,浏览器将不会将 HTML 内容解释为 application/xhtml+xml。

参考资料


2

IE(包括IE8)是唯一一个不支持XHTML作为application/xhtml+xml(对应于xhtxhtml扩展名)的(重要的)浏览器。

当IE支持XHTML时,所有人都会转向XHTML吗?可能不会。XML并不容易正确地处理,特别是如果您必须合并用户提供的数据(例如博客评论)。 (但在IE开始配合之前,这可能通过(X)HTML5 <iframe sandbox>得到解决。)但是,我没有水晶球,所以我们只能等待看看会发生什么。


1

没人在乎文件叫什么名字,只关心它是用什么 MIME 类型传输的。


0

我认为xhtml扩展仅用于XHTML,但它很少使用,因为您使用的HTML类型已在DOCTYPE元素中定义。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

这是一个完全有效的答案。为什么它被downvote了这么多呢? - mejdev

0
浏览器不仅依赖于页面扩展名,而是依赖于MIME内容类型。这样,您就可以创建一个PHP页面来提供JPG图像。

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