- 浏览: 794096 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (417)
- ASP.NET MVC (18)
- WEB基础 (24)
- 数据库 (69)
- iPhone (20)
- JQuery (3)
- Android (21)
- UML (8)
- C# (32)
- 移动技术 (19)
- 条码/RFID (6)
- MAC (8)
- VSS/SVN (6)
- 开卷有益 (4)
- 应用软件 (1)
- 软件工程 (1)
- java/Eclipse/tomcat (61)
- 英语学习 (2)
- 综合 (16)
- SharePoint (7)
- linux (42)
- Solaris/Unix (38)
- weblogic (12)
- c/c++ (42)
- 云 (1)
- sqlite (1)
- FTp (2)
- 项目管理 (2)
- webservice (1)
- apache (4)
- javascript (3)
- Spring/Struts/Mybatis/Hibernate (4)
- 航空业务 (1)
- 测试 (6)
- BPM (1)
最新评论
-
dashengkeji:
1a64f39292ebf4b4bed41d9d6b21ee7 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
zi_wu_xian:
PageOffice操作excel也可以设置表格的行高列宽,并 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
wanggang0321:
亲,我在pptx(office2007以上版本)转pdf的时候 ...
JODConverter]word转pdf心得分享(转) -
xiejanee:
楼主:你好!我想请问下 你在代码中用DOMDocument* ...
Xerces-C++学习之——查询修改XML文档 (转)
XHTML 和 MIME 类型 - 使用Web 标准生成 ASP.NET 2.0 Web 站点~
Posted on 2008-03-14 14:45 礼拜一 阅读(1165) 评论(1) 编辑 收藏
当 Web 浏览器从 Web 服务器请求页时,Web 服务器会为该页分配特定的 MIME
类型
(也称为 Content 类型
)。例如,HTML 页被分配为 text/html MIME
类型
,GIF 图像被分配为 image/gif MIME
类型
,而 Microsoft Word 文档被分配为 application/msword MIME
类型
。
浏览器使用 MIME 类型 来确定如何处理页(或其他资源)。例如,如果浏览器从 Web 服务器获得一个具有可识别图像 MIME 类型 的文件,则浏览器尝试将该文件解释并呈现为图像。如果浏览器获得一个具有 application/msword MIME 类型 的文件,则该浏览器可能自动打开 Microsoft Word 以显示该文档(这里的确切行为取决于浏览器及其配置方式)。
W3C 为 XHTML 文档引入了一个 MIME 类型 。这一新的 MIME 类型 是 application/xhtml+xml。W3C 建议您在提供 XHTML 文档时使用 application/xhtml+xml MIME 类型 ,因为 XHTML 页应该以比旧式 HTML 页更严格的方式进行解释。
通过在页指令中包含 ContentType 属性,为 ASP.NET 页分配特定的 MIME 类型 。例如,在 ASP.NET 页的顶部包含以下指令会导致为该页分配 application/xhtml+xml 类型 。
W3C 的推荐标准有一个突出问题:并非所有浏览器都能识别 application/xhtml+xml。特别需要指出的是,Internet Explorer(有史以来最为流行的 Web 浏览器)不能识别 application/xhtml+xml MIME 类型 。因此,使用推荐的 application/xhtml+xml MIME 类型 提供 XHTML 页不是一个可行的选择。
有三种解决该问题的方式。可以使用 text/html MIME 类型 来提供 XHTML 页,或者使用 application/xml(或 text/xml)MIME 类型 来提供 XHTML 页,也可以使用内容协商方式。让我们对上述每个选择进行探讨。
第一个选择 — 以 text/html 类型 提供页 — 是最容易的选择。默认情况下,ASP.NET 页被分配为该 MIME 类型 。更好的做法是,按照 W3C 的建议,在向现有的 HTML 浏览器提供页时使用这一选择(请参阅 http://www.w3.org/TR/xhtml-media-types/ )。如果创建的是 XHTML 1.0 Transitional 页,并且 Web 应用程序的主要受众使用不能理解 application/xhtml+xml MIME 类型 的浏览器,那么以 text/html 类型 提供页似乎十分明智。毕竟,引入 XHTML 1.0 Transitional 标准的目的是使开发人员能够更为容易地将现有的 HTML 页迁移到 XHTML。
这一主张是有争议的。例如,Ian Hickson 认为,绝不应该以 text/html 类型 提供 XHTML 页,因为这样会导致随便的、不标准的 XHTML 页(请参阅 http://hixie.ch/advocacy/xhtml )。他建议作者们继续坚持使用 HTML 4.0,直到更多的浏览器完全支持 XHTML 标准为止。
第二个选择是使用 application/xml 或 text/xml MIME 类型 ,以 XML 类型 提供 XHTML 页。在向 Internet Explorer 提供 XML 文档时,该文档会作为 XML 文档进行分析并呈现到浏览器中。(该文档由 document.XMLDocument 对象公开的 XML DOM 表示。)
以 XML 类型 提供 XHTML 文档的优点是,XHTML 文档具有的任何问题都会被 Internet Explorer 的 XML 分析器捕获。例如,如果文档包含重叠标记,或者如果没有将属性的值包装到引号内,则不会呈现该文档,并且会显示错误信息(参见图 4)。XHTML 纯粹主义者认为该行为是一件好事,因为它可以防止您编写格式错误的 XHTML。
图 4. 在 Internet Explorer 中显示 XML
该方法的问题是:默认情况下,Internet Explorer 呈现 XML 文档的源代码。因此,如果以 XML 类型 提供 XHTML 文档,则 Web 站点访问者将看到 XHTML 文档的源代码,而不是预期的呈现输出。W3C 推荐了一个用来解决该问题的“窍门”(请参阅 http://www.w3.org/MarkUp/2004/xhtml-faq#ie ):如果通过使用 XSLT 转换将 XHTML 文档转换为 HTML,那么文档将分析为 XML 并显示为 HTML。
例如,清单 1 中的 ASP.NET 页将以 XML 文档的形式提供,但被转换为 HTML 文档。结果页会正确地显示在 Internet Explorer、Opera 和 Firefox 中。
清单 1. XMLPage.aspx
页指令会导致该页以 text/xml 类型 呈现。清单中的第二行引用了一个名为 copy.xsl 的 XSLT 样式表,它会对当前文档执行标识转换。换句话说,除了将原始XML 文档中的所有元素复制到新的 HTML 文档中以外,它根本没有做任何事情。copy.xsl 的源代码包含在清单 2 中。
清单 2. Copy.xsl
该解决方案是有效的,但它似乎不是很精彩。当分析 XML 文档时,的确获得了额外的验证步骤。但是,如果在 Visual Studio .NET 2005 或 Visual Web Developer 中生成 ASP.NET 页,那么开发环境会在“Source”视图中执行相同的验证。最后,Internet Explorer 将收到与向它发送 text/html 类型 文档时相同的文档。
第三个选择 — 内容协商,将 W3C 推荐标准的精神与最大程度的浏览器兼容性最佳地组合在一起(请参阅 http://www.w3.org/2003/01/xhtml-mimetype/content-negotiation )。当使用内容协商时,会以不同的 MIME 类型 向不同的浏览器提供 ASP.NET 页。如果浏览器声称它支持 XHTML,则向它提供 XHTML 类型 的页;否则,以 text/html MIME 类型 向该浏览器提供页。
清单 3 中的 Global.asax 包含向不同的浏览器提供不同 MIME 类型 页所需的代码。如果将该文件添加到 Web 项目中,则每个 ASP.NET 页的 MIME 类型 都会随着每个请求而修改。将页提供给 Firefox 或 Opera 时,该页以 application/xhtml+xml 类型 提供。另一方面,Internet Explorer 6 会收到 text/html 页。
清单 3. Global.asax
转自:http://www.flywe.net/article.asp?id=133
浏览器使用 MIME 类型 来确定如何处理页(或其他资源)。例如,如果浏览器从 Web 服务器获得一个具有可识别图像 MIME 类型 的文件,则浏览器尝试将该文件解释并呈现为图像。如果浏览器获得一个具有 application/msword MIME 类型 的文件,则该浏览器可能自动打开 Microsoft Word 以显示该文档(这里的确切行为取决于浏览器及其配置方式)。
W3C 为 XHTML 文档引入了一个 MIME 类型 。这一新的 MIME 类型 是 application/xhtml+xml。W3C 建议您在提供 XHTML 文档时使用 application/xhtml+xml MIME 类型 ,因为 XHTML 页应该以比旧式 HTML 页更严格的方式进行解释。
通过在页指令中包含 ContentType 属性,为 ASP.NET 页分配特定的 MIME 类型 。例如,在 ASP.NET 页的顶部包含以下指令会导致为该页分配 application/xhtml+xml 类型 。
程序代码
<%@ ContentType="application/xhtml+xml" %>
W3C 的推荐标准有一个突出问题:并非所有浏览器都能识别 application/xhtml+xml。特别需要指出的是,Internet Explorer(有史以来最为流行的 Web 浏览器)不能识别 application/xhtml+xml MIME 类型 。因此,使用推荐的 application/xhtml+xml MIME 类型 提供 XHTML 页不是一个可行的选择。
有三种解决该问题的方式。可以使用 text/html MIME 类型 来提供 XHTML 页,或者使用 application/xml(或 text/xml)MIME 类型 来提供 XHTML 页,也可以使用内容协商方式。让我们对上述每个选择进行探讨。
第一个选择 — 以 text/html 类型 提供页 — 是最容易的选择。默认情况下,ASP.NET 页被分配为该 MIME 类型 。更好的做法是,按照 W3C 的建议,在向现有的 HTML 浏览器提供页时使用这一选择(请参阅 http://www.w3.org/TR/xhtml-media-types/ )。如果创建的是 XHTML 1.0 Transitional 页,并且 Web 应用程序的主要受众使用不能理解 application/xhtml+xml MIME 类型 的浏览器,那么以 text/html 类型 提供页似乎十分明智。毕竟,引入 XHTML 1.0 Transitional 标准的目的是使开发人员能够更为容易地将现有的 HTML 页迁移到 XHTML。
这一主张是有争议的。例如,Ian Hickson 认为,绝不应该以 text/html 类型 提供 XHTML 页,因为这样会导致随便的、不标准的 XHTML 页(请参阅 http://hixie.ch/advocacy/xhtml )。他建议作者们继续坚持使用 HTML 4.0,直到更多的浏览器完全支持 XHTML 标准为止。
第二个选择是使用 application/xml 或 text/xml MIME 类型 ,以 XML 类型 提供 XHTML 页。在向 Internet Explorer 提供 XML 文档时,该文档会作为 XML 文档进行分析并呈现到浏览器中。(该文档由 document.XMLDocument 对象公开的 XML DOM 表示。)
以 XML 类型 提供 XHTML 文档的优点是,XHTML 文档具有的任何问题都会被 Internet Explorer 的 XML 分析器捕获。例如,如果文档包含重叠标记,或者如果没有将属性的值包装到引号内,则不会呈现该文档,并且会显示错误信息(参见图 4)。XHTML 纯粹主义者认为该行为是一件好事,因为它可以防止您编写格式错误的 XHTML。
图 4. 在 Internet Explorer 中显示 XML
该方法的问题是:默认情况下,Internet Explorer 呈现 XML 文档的源代码。因此,如果以 XML 类型 提供 XHTML 文档,则 Web 站点访问者将看到 XHTML 文档的源代码,而不是预期的呈现输出。W3C 推荐了一个用来解决该问题的“窍门”(请参阅 http://www.w3.org/MarkUp/2004/xhtml-faq#ie ):如果通过使用 XSLT 转换将 XHTML 文档转换为 HTML,那么文档将分析为 XML 并显示为 HTML。
例如,清单 1 中的 ASP.NET 页将以 XML 文档的形式提供,但被转换为 HTML 文档。结果页会正确地显示在 Internet Explorer、Opera 和 Firefox 中。
清单 1. XMLPage.aspx
程序代码
<%@ Page Language="VB" ContentType="text/xml" %>
<?xml-stylesheet type="text/xsl" href="copy.xsl"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>My Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtFirstName" runat="server" />
</div>
</form>
</body>
</html>
<?xml-stylesheet type="text/xsl" href="copy.xsl"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>My Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtFirstName" runat="server" />
</div>
</form>
</body>
</html>
页指令会导致该页以 text/xml 类型 呈现。清单中的第二行引用了一个名为 copy.xsl 的 XSLT 样式表,它会对当前文档执行标识转换。换句话说,除了将原始XML 文档中的所有元素复制到新的 HTML 文档中以外,它根本没有做任何事情。copy.xsl 的源代码包含在清单 2 中。
清单 2. Copy.xsl
程序代码
<stylesheet version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="/">
<copy-of select="."/>
</template>
</stylesheet>
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="/">
<copy-of select="."/>
</template>
</stylesheet>
该解决方案是有效的,但它似乎不是很精彩。当分析 XML 文档时,的确获得了额外的验证步骤。但是,如果在 Visual Studio .NET 2005 或 Visual Web Developer 中生成 ASP.NET 页,那么开发环境会在“Source”视图中执行相同的验证。最后,Internet Explorer 将收到与向它发送 text/html 类型 文档时相同的文档。
第三个选择 — 内容协商,将 W3C 推荐标准的精神与最大程度的浏览器兼容性最佳地组合在一起(请参阅 http://www.w3.org/2003/01/xhtml-mimetype/content-negotiation )。当使用内容协商时,会以不同的 MIME 类型 向不同的浏览器提供 ASP.NET 页。如果浏览器声称它支持 XHTML,则向它提供 XHTML 类型 的页;否则,以 text/html MIME 类型 向该浏览器提供页。
清单 3 中的 Global.asax 包含向不同的浏览器提供不同 MIME 类型 页所需的代码。如果将该文件添加到 Web 项目中,则每个 ASP.NET 页的 MIME 类型 都会随着每个请求而修改。将页提供给 Firefox 或 Opera 时,该页以 application/xhtml+xml 类型 提供。另一方面,Internet Explorer 6 会收到 text/html 页。
清单 3. Global.asax
程序代码
<script runat="server">
Sub Application_PreSendRequestHeaders(ByVal s As Object, _
ByVal e As EventArgs)
If Array.IndexOf(Request.AcceptTypes, _
"application/xhtml+xml") > -1 Then
Response.ContentType = "application/xhtml+xml"
End If
End Sub
</script>
Sub Application_PreSendRequestHeaders(ByVal s As Object, _
ByVal e As EventArgs)
If Array.IndexOf(Request.AcceptTypes, _
"application/xhtml+xml") > -1 Then
Response.ContentType = "application/xhtml+xml"
End If
End Sub
</script>
转自:http://www.flywe.net/article.asp?id=133
发表评论
-
ie firefox 读取文件
2013-02-21 11:09 0<!DOCTYPE HTML PUBLIC " ... -
js读写文件
2013-02-21 10:49 809<script> /* object.Open ... -
sessionStorage 、localStorage 和 cookie 之间的区别(转)
2013-02-20 16:00 922sessionStorage 和 localStorage ... -
html5本地存储 localStorage
2013-02-20 15:45 846<!DOCTYPE HTML> <html& ... -
html5本地存储-留言板
2013-02-20 15:44 4409<!DOCTYPE HTML> <html& ... -
myinfo
2013-02-20 09:40 0https://www.ibm.com/developerwo ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2013-01-21 15:05 791http://www.cnblogs.com/JesseV/a ... -
通过js闭包实现减少前后台交互的次数
2013-01-06 10:49 0应用场景:鼠标移到超链接时,会显示tip,而tip的内容来自后 ... -
js闭包的理解(转)
2013-01-06 10:38 898转自:http://www.cnblogs.com ... -
js闭包
2013-01-06 10:21 859http://www.jb51.net/article/241 ... -
js date对象
2012-12-28 14:28 1066Date 对象用于处理日期和时间。创建 Date 对象的语法: ... -
JS Date格式化为yyyy-MM-dd类字符串
2012-12-28 14:27 1192Date.prototype.format = functio ... -
js数组(转)
2012-12-11 11:38 1022js数组的操作 用 js有很久了,但都没有深究过js的数组形式 ... -
js使用
2012-11-29 10:53 9751. js split <script language ... -
.NET 的 WCF 和 WebService 有什么区别?(转载)
2012-05-07 10:28 1794<h2> <a id="cb ... -
在线文档显示组件 FlexPaper
2011-12-19 14:24 1127FlexPaper 是一个开源轻量级的在浏览器上显示各种 ... -
Document Type Declaration
2011-12-08 15:22 2633Document Type Declaration From ... -
Doctype
2011-12-08 15:04 918DOCTYPE不可怕,但把它拿 ... -
xhtml DTD
2011-11-30 16:18 853XHTML 定义了三种文件类型声明。 使用最普遍的是 ... -
IIS配置
2011-11-17 13:18 848http://bbs.51cto.com/thread-488 ...
相关推荐
MIME类型由两部分组成:类型和子类型,用斜杠分隔。例如,“image/jpeg”表示JPEG格式的图片文件。“image”是类型,而“jpeg”是子类型。常见的MIME类型包括但不限于: - `text/html`:HTML文档 - `application/...
例如,HTML文件的MIME类型是"application/xhtml+xml"或"text/html",而JPEG图片的MIME类型是"image/jpeg"。 2. **分类与常见类型** MIME类型分为多种类别,如文本、图像、音频、视频、应用等。常见的MIME类型包括...
#### 二、XHTML MP 的 MIME 类型和文件扩展名 XHTML MP 支持多种 MIME 类型,这有助于不同类型的客户端正确解析和渲染页面。常见的 MIME 类型包括: 1. **application/vnd.wap.xhtml+xml** - 这是专门为某些 WAP ...
MIME类型是每个Web请求和响应的一部分,用来告诉浏览器或其他接收端如何处理接收到的数据。以下是部分常见的MIME类型及其对应的文件扩展名和用途: 1. `application/acad`: 这个MIME类型用于表示AutoCAD的图纸文件...
**XHTML MP的MIME类型和文件扩展名** XHTML MP支持三种MIME类型: 1. `application/vnd.wap.xhtml+xml`:这是针对一些WAP浏览器,如某些诺基亚S60设备,以正确显示XHTML MP文档。 2. `application/xhtml+xml`:适用...
2. 使用标签的type属性指明脚本的MIME类型是"text/javascript"。虽然这是默认值,但明确指定有助于浏览器更好地理解脚本内容。 3. 为了提高代码的组织性和可维护性,推荐将JavaScript代码放在单独的文件中,并通过...
除了语法规则,XHTML MP的MIME类型和文件扩展名也是开发中的关键因素。XHTML MP支持三种MIME类型:`application/vnd.wap.xhtml+xml`、`application/xhtml+xml`和`text/html`。第一种类型是专门为WAP浏览器设计的,如...
其次,XHTML MP文档的MIME类型和文件扩展名是决定它们如何在不同设备上被识别和处理的关键。主要有三种MIME类型:1) `application/vnd.wap.xhtml+xml`,适用于某些WAP浏览器;2) `application/xhtml+xml`,代表XHTML...
13. **正确使用MIME类型**:确保使用正确的MIME类型,并通过验证工具检查XHTML代码的正确性。 14. **描述性标签**:使用描述性强的页面标题和元素标签,提高内容可读性。 15. **可用性测试**:进行实际的可用性测试...
MIME类型是一种用来标识文件格式的标准,用于告诉Web服务器和客户端该文件应该如何被处理。 #### 三、MIME类型的配置方法 ##### 3.1 了解MIME类型 MIME类型由两部分组成:“类型”和“子类型”,中间用斜杠(/)...
**2.13 使用正确的MIME类型和经过验证的XHTML代码** 使用正确的MIME类型(如`text/html`或`application/xhtml+xml`)可以确保内容被正确解析。同时,确保代码符合XHTML标准也是十分重要的。 **2.14 使用描述性页面...
- 使用`type`属性指定样式表的MIME类型,如`type="text/css"`。 - 避免使用内联样式,优先使用CSS类。 - 遵循语义化HTML,使用适当的元素,如`<header>`、`<nav>`、`<main>`、`<article>`等。 通过遵循上述标准...
但是,由于历史原因和浏览器兼容性问题,许多浏览器,尤其是较旧的浏览器,不支持这种MIME类型。例如,早期版本的Internet Explorer仅支持text/html的MIME类型。 XHTML文档的编写需要遵循严格的规则: 1. 文档内容...
Web 应用程序技术 本章节主要介绍了 Web 应用程序技术的基础知识,包括 HTTP 协议、服务器和客户端...表示浏览器支持 text/html、application/xhtml+xml、application/xml 等 MIME 类型,并且优先顺序从左到右排列。
20 什么是XHTML Mobile Profile文档的MIME类型?............................................................................9 21 如何链接WML和XHTML文档?.....................................................
MIME类型是一种标准,用于标识互联网上的资源类型,如文本、图片、音频、视频等。正确设置`ContentType`能够确保浏览器知道如何处理服务器返回的数据,例如,将数据解释为HTML页面、JPEG图像、CSV文件等。 以下是...