XHTML MP MIME 类型与文件扩展
MIME 类型
下面三个 MIME 类型可用于 XHTML MP 文档:
application/vnd.wap.xhtml+xml application/xhtml+xml text/html
开放移动联盟 (Open Mobile Alliance, OMA) 为 XHTML MP 文档指定的 MIME 类型为 "application/vnd.wap.xhtml+xml".
该 MIME 类型对于要正确显示 XHTML MP 文档的一些 WAP 浏览器 (比如, 一些诺基亚60系列浏览器) 来说是必须的.
另一个可选择的 MIME 类型是 "application/xhtml+xml".
该类型是 XHTML 系列文档的 MIME 类型.
"text/html" MIME 类型也是一个可用的选择. 它是 HTML 文档的 MIME 类型. XHTML MP 文档使用 "text/html" 有一个好处是你的 XHTML MP 页面在普通 Web 浏览器是显示也是没有任何问题的. (一些像 IE6 之类的 Web 浏览器并不能显示带有
"application/vnd.wap.xhtml+xml" 或 "application/xhtml+xml" MIME 类型的文档, 而是会弹出对话框让你用外部程序打开或找个地方保存文件.) 缺点是用户代理 (User Agent) 将不会把你的 XHTML MP 页面视为 XML 文档, 也就意味着即使标记代码没有严格遵守 XML 规则, 用户代理也不会抱怨什么.
动态选择 MIME 类型
另一个选项是探测某用户代理可处理的 MIME 类型从而动态地选择.
例如, 你的服务器发现某用户代理能处理 "application/vnd.wap.xhtml+xml" MIME 类型, 然后你的所有 XHTML MP 文档都会用 "application/vnd.wap.xhtml+xml" 传输给该用户代理.
要想动态选择 MIME 类型, 你需要用服务器端语言 (如 PHP, ASP, JSP, Perl) 写几行代码. 伪代码如下:
1. 获取收到的 HTTP 请求的 Accept Header 值. Accept Header 包含了发送请求的客户端用户代理所能处理的所有的 MIME 类型.
2. 如果 Accept Header 值包含 "application/vnd.wap.xhtml+xml", 将 XHTML MP 文档的 MIME 类型设为 "application/vnd.wap.xhtml+xml".
否则如果 Accept Header 值包含 "application/xhtml+xml", 将 XHTML MP 文档的 MIME 类型设为 "application/xhtml+xml".
否则将 XHTML MP 文档的 MIME 类型设为 "text/html".
下面的例子演示了怎样用 PHP 编写上述代码. 如果你用的服务器端技术不是 PHP, 代码将稍有不同, 但基本思想没有变化.
<?php $acceptHeader = $_SERVER['HTTP_ACCEPT']; if (false !== strpos($acceptHeader, 'application/vnd.wap.xhtml+xml')) header('Content-type: application/vnd.wap.xhtml+xml'); else if (false !== strpos($acceptHeader, 'application/xhtml+xml')) header('Content-type: application/xhtml+xml'); else header('Content-type: text/html');?>
hello_world.php<?php $acceptHeader = $_SERVER['HTTP_ACCEPT']; if (false !== strpos($acceptHeader, 'application/vnd.wap.xhtml+xml')) header('Content-type: application/vnd.wap.xhtml+xml'); else if (false !== strpos($acceptHeader, 'application/xhtml+xml')) header('Content-type: application/xhtml+xml'); else header('Content-type: text/html');?><?xml version="1.0"?><!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>XHTML MP 教程</title> </head> <body> <p>大家好. 欢迎大家来学习 XHTML MP 教程.</p> </body></html>