`
ralphr
  • 浏览: 143201 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

XHTML MP MIME 类型与文件扩展

    博客分类:
  • web
 
阅读更多

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');
?>
 

这里是上述 PHP 代码的一些描述:

1. Accept Header 的值是从 HTTP 请求中获取的. 然后将其存放于 acceptHeader 中.

$acceptHeader = $_SERVER['HTTP_ACCEPT'];
 

2. 接下来, 检查变量 $acceptHeader, 看其是否包含关键字 "application/vnd.wap.xhtml+xml" 或 "application/xhtml+xml". 字符串函数 strpos(string $haystack, string $needle) 返回 $needle 第一次出现的位置. 如果没有找到 $needle, strpos(string $haystack, string $needle) 将返回 false. 也就是说, 如果找到 $needle 了的话, 返回值将不会是 false.

if (false !== strpos($acceptHeader, 'application/vnd.wap.xhtml+xml'))
...
else if (false !== strpos($acceptHeader, 'application/xhtml+xml'))
...
 

3. 方法

header('Content-type: ...');
 

用于设置文档的 MIME 类型.

 

下面的例子演示了如何在实际的 XHTML MP 文档中使用 PHP 代码. 你要做的非常简单 -- 复制 PHP 代码并粘贴到 XHTML MP 文档中 并用 ".php" 作为文件扩展名. (我们将在后面的章节中作深入讨论此例中的 XHTML MP 标记.)

(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>
 

文件扩展

静态 XHTML MP 文档的典型扩展名为 ".xhtml", ".html" and ".htm". 只要在 WAP 服务器的配置文件里正确设置了和文件扩展相关联的 MIME 类型, 你就可以使用你喜欢的其它文件扩展. 如果你要用 ASP, JSP, Perl, PHP 或 SSI (服务器端包含) 之类的服务器端语言往 XHTML MP 文档中动态添加内容, 你或许要将你的 XHTML MP 文档的文件扩展修改为服务器端所用的技术. 例如, PHP 所用的典型扩展为 ".php", 而 SSI 所用的典型扩展为 ".shtml".

 

多普达S1 IE:  
accept:text/html; text/vnd.sun.j2me.app-descriptor, */*  
accept-language:zh-cn  

 

多普达S1 UCWeb  
host:123.122.99.136  
accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8, dn/807993233-aa6ec33c,ss/220x268  
摩托罗拉L7  
host:123.122.99.136  
accept:application/vnd.wap.wmlc, application/vnd.wap.wbxml, application/vnd.wap.wmlscriptc, text/wml, text/vnd.wap.wml, text/html, text/css, application/xhtml+xml, application/vnd.wap.xhtml+xml, application/vnd.wap.multipart.related, application/vnd.wap.multipart.mixed, multipart/mixed, application/vnd.wap.sic, application/vnd.phonecom.mmc-wbxml, application/vnd.oma.dd+xml, application/motorola-mmstemplate, image/gif, image/bmp, image/vnd.wap.wbmp, image/png, image/jpeg, image/ems.userdefined.picture, image/ems.userdefined.animation, image/ems.predefined.animation, audio/imelody, audio/mid, audio/midi, audio/x-midi, audio/mp3, audio/mpeg, audio/mpeg3, audio/mpg, audio/x-mp3, audio/x-mpeg, audio/x-mpeg3, audio/x-mpg, audio/x-wav, audio/wav, audio/amr, audio/mp4, audio/3gpp, audio/m4a, audio/x-m4a, video/mp4, video/3gpp, application/vnd.oma.drm.message, application/vnd.oma.drm.rights+xml, application/vnd.oma.drm.content, application/vnd.oma.drm.rights+wbxml, text/x-vcard, text/x-vcalendar, text/uri-list, text/vnd.sun.j2me.app-descriptor, application/java-archive, application/octet-stream, application/vnd.wap.mms-message, text/vnd.wap.si, text/plain, text/vnd.wap.wmlscript  
accept-application:2,4  
accept-charset:UTF-8  
诺基亚E71  
host:123.122.99.136  
accept:text/html, text/css, multipart/mixed, application/java-archive, application/java, application/x-java-archive, text/vnd.sun.j2me.app-descriptor, application/vnd.oma.drm.message, application/vnd.oma.drm.content, application/vnd.oma.dd+xml, application/vnd.oma.drm.rights+xml, application/vnd.oma.drm.rights+wbxml, application/x-nokia-widget, */*, text/x-vcard, text/x-vcalendar, image/gif, image/vnd.wap.wbmp  
accept-charset:iso-8859-1, utf-8; q=0.7, *; q=0.7
分享到:
评论

相关推荐

    最全的文件扩展名-MIME类型对照表(MIME类型大全).txt

    标题与描述均指向了一个主题——“最全的文件扩展名-MIME类型对照表”,这实际上是一份详尽的文档,旨在列举各种文件扩展名及其对应的MIME类型。MIME(Multipurpose Internet Mail Extensions)类型是一种标准,用于...

    IIS设置MIME类型

    例如,如果站点上的视频无法播放或特定文件类型无法被正确识别,那么可能就是由于MIME类型设置不正确导致的。 #### 二、MIME类型的基础概念 MIME类型由两部分组成:类型和子类型,用斜杠分隔。例如,“image/jpeg...

    iis mime 类型的以及对应的文件扩展名称

    #### 三、IIS中的MIME类型与文件扩展名 1. **Application MIME类型** - **application/envoy** (`evy`):Envoy文件,一种用于封装多种数据类型的应用程序。 - **application/fractals** (`fif`):Fractint图像...

    IIS MIME 类型配置参考

    在IIS中,MIME(Multipurpose Internet Mail Extensions)类型是一种标准,用于定义不同类型的文件与特定的媒体类型之间的关联。正确配置IIS MIME类型对于确保服务器能够正确处理和传输不同格式的文件至关重要。 **...

    XHTML MP开发基础

    #### 二、XHTML MP 的 MIME 类型和文件扩展名 XHTML MP 支持多种 MIME 类型,这有助于不同类型的客户端正确解析和渲染页面。常见的 MIME 类型包括: 1. **application/vnd.wap.xhtml+xml** - 这是专门为某些 WAP ...

    MIME类型的自定义

    在这个例子中,我们为`.exampledoc`文件扩展名添加了一个名为`application/vnd.example.doc`的MIME类型。 #### 5. 总结 通过上述介绍可以看出,MIME类型对于确保网络数据的正确传输至关重要。自定义MIME类型不仅...

    IIS配置文件访问常见MIME扩展类型添加.docx

    MIME(Multipurpose Internet Mail Extensions)扩展类型是互联网上用来标识文件类型的标准化格式。当用户尝试访问或上传特定类型的文件时,IIS需要知道对应的MIME类型才能正确地处理这些文件。如果IIS没有预设的...

    MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型

    MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

    IIS添加MIME扩展类型及常用的MIME类型列表.docx

    为了解决这个问题,我们可以在IIS中添加MIME扩展类型,以便支持更多的文件类型下载。 首先,我们需要了解什么是MIME类型。MIME(Multipurpose Internet Mail Extensions)是一种标准,它定义了Internet上文件的格式...

    根据文件扩展名解析并返回对应的内容类型MIME Type

    【根据文件扩展名解析并返回对应的内容类型MIME Type】 常见的Microsoft Office文件类型有:doc、docx、xls、xlsx、ppt、pptx等 常见的Pdf文件类型有:pdf 常见的图像文件类型有:png、jpg、jpeg、gif等 常见的...

    HTTP MIME 类型

    MIME(Multipurpose Internet Mail Extensions)类型是指在 HTTP 协议中用来标识文件类型的方式。MIME 类型是由 IANA(Internet Assigned Numbers Authority)机构负责管理和维护的。MIME 类型的主要作用是告诉...

    常见的MIME类型

    在互联网通信中,数据传输的格式与编码方式至关重要,MIME(Multipurpose Internet Mail Extensions)类型是用于标识网络上传输的数据格式的一种标准。MIME类型不仅用于电子邮件系统中,也广泛应用于HTTP协议中,...

    mime类型大全-网页制作

    主类型表示大类别,子类型则更具体地描述了该类别下的文件类型。 **2. MIME类型的作用** - **内容识别**:MIME类型允许服务器告知客户端(如浏览器)传输的数据类型,确保正确解析。 - **安全控制**:通过指定MIME...

    MimeType文件校验demo

    在IT行业中,MimeType(MIME类型)是一种标准,用于标识互联网上的文件类型和编码方式。MimeType文件校验是网络服务中常见的操作,特别是在处理用户上传的文件时,它能确保服务器正确地解析和处理文件。本示例"Mime...

    linux windows MIME类型大全

    Windows则使用注册表条目来关联文件扩展名与相应的MIME类型。 对于开发者和系统管理员而言,理解MIME类型及其在不同操作系统中的实现是至关重要的。这有助于优化内容的传输效率,提高用户在Web浏览、电子邮件和应用...

    xhtml mp 基础(手机网站开发基础技术)

    **XHTML MP的MIME类型和文件扩展名** XHTML MP支持三种MIME类型: 1. `application/vnd.wap.xhtml+xml`:这是针对一些WAP浏览器,如某些诺基亚S60设备,以正确显示XHTML MP文档。 2. `application/xhtml+xml`:适用...

    php文件上传及mime类型大全.doc

    确定文件类型合法后,我们设定文件的保存路径,并使用`move_uploaded_file()`函数将临时文件移动到目标位置。这个函数确保文件安全地移动,防止了可能的攻击。如果文件移动失败,脚本会给出错误信息并结束执行。 ...

    常用附件对应的mime类型

    在IT领域,尤其是在Web开发与电子邮件传输中,MIME(多用途互联网邮件扩展)类型扮演着至关重要的角色。MIME类型定义了数据的格式和类型,使得不同平台和应用程序能够识别并正确处理接收到的数据。以下是从给定的...

    mimetype-js:用于将文件扩展名映射到其 MIME 类型字符串的 MIME 类型目录

    mimetype-js概述我发现继续为MIME类型制作这些文件扩展名查找表。 是时候把它放在一个模块中来省去麻烦了。例子一般情况var mimetype = require ( 'mimetype' ) ;console . log ( mimetype . lookup ( "myfile.txt" ...

Global site tag (gtag.js) - Google Analytics