一、 MMS 的封装( Encapsulation )—— MIME
对于使用SMIL 语言描述的MMS ,在通过无线网络发送的时候,我们必须通过某种方式把SMIL 和附属的内容包装在一起,一边能够以一个unit (整体)的形式发送出去,以便SMIL 文件各个部分内容的reference 变得有效。
这 个解决的办法就是MIME (Multipart Internet Mail Extensions )规范,这个规范的最初作用是在email 的 plain text 的主体中加入不同的内容。比如说,发送带有附件的email ,这个时候你就使用了MIME 的规范。MIME 负责把所有的独立的文本、 图像、声音、视频内容以及SMIL 文件本身捆绑在一起,这个规范称为MIME Encapsulation Aggregate Documents ,用 于告诉接受的终端这个MMS 的内容是相互相关(related to one another )并且相互参考的 (referenced to one another )。
1. MIME 封装示例
下面是根据RFC 文档给出的MIME 的封装示例:
- Content-type
位于信息头部的content-type 用于通知接收的终端消息的各个不同部分的内容是相互关联的、并且可能是相互索引的(refer to one another )。
- Boundary
Boundary 用于分割各个不同的消息part 。第一个部分是一个html 类型的消息,这里只是取得了相关的部分。第二和第三部分省略了实际的images 图像的实体。
- Location and ID
在HTML 文本部分我们可以看到,我们可以利用两种方式来索引消息内容的不同部分。这两种不同的方式是 content-ID 和 content – Location 。
如果一部分的消息体想通过content-ID 指向(refer to )另外一部分的消息体,可以使用“CID”.
关于MIME 的部分的信息可以参考附录中列出的RFC 文档(RFC2387 和RFC2357 )。
2. 利用 MIME 封装 MMS 的示例
下面给出一个利用MIME 封装MMS 的示例:
下图给出的图示说明各个部分之间的关系:
3. 一个完整的 MIME 封装 MMS 示例
下表给出了一个完整的MIME 封装MMS 的示例:
二、 MMS 的MIME 结构
综述来说,每个MMS 信息按照MIME 规范的基本结构如下图所示:
从图示看出,每个MMS 都是由MMS Header 和MMS Body 组成,MMS Header 根据WAP-209 协议和RFC2387 的规定,由一系列的域组成,下表列出了部分的域(给出的示范的内容表示),其中有些是强制必须实现的( 用黑体表示) 。