zoukankan      html  css  js  c++  java
  • POP3_关于 multipart/related;boundary=

    http协议对mime类型有详细描述,multipart/....是单个消息头包含多个消息体的解决方案。multipart媒体类型对发送非文本的各媒体类型是有用的。目前常用的有这些subtype:

    Messages with multiple parts     multipart/mixed
    Messages with multiple, alternative parts     multipart/alternative
    Message with multiple, related parts     multipart/related
    Multiple parts are digests     multipart/digest
    For reporting of email status (admin.)     multipart/report
    Order of parts does not matter     multipart/parallel
    Macintosh file data     multipart/appledouble
    Aggregate messages; descriptor as header     multipart/header-set
    Container for voice-mail     multipart/voice-message
    HTML FORM data (see Ch. 9 and App. B)     multipart/form-data
    Infinite multiparts - See Chapter 9 (Netscape)     multipart/x-mixed-replace

    任何一种执行时无法识别的multipart子类型都被视为子类型"mixed"。multipart媒体类型有共同的格式,一般是这样:

    Content-Type: multipart/mixed; boundary=xxxxx

    --xxxxx
    body
    --xxxxx--

    body还可以套body,可以参考前面的文章

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    MHTML,即MIME HTML,是由RFC 2557定义的,把一个多附件(如图片,flash动画等)的网页内容都保存到单一档案的标准。这个标准由微软提出,并从IE 5.0对其开始支持。同时,微软实现了MHTML协议,默认安装的window系统都带有MHTML协议处理程序(MHTML Protocol Handler)。在IE中,当嵌入资源的URL的协议为MHTML 时,IE将调用MHTML Protocol Handler,把该资源当作MHTML格式文件解析处理。

    MHTML文件由于是 "多合一" ,所以使用multipart的格式。

    MHTML Protocol Handler 对MHTML文件有如下“温和”之处:
    1. MHTML Protocol Handler会忽略远程文件后缀;
    2. MHTML Protocol Handler会忽略远程文件中Content-Type前面的除“空行”外的所有内容,若有“空行”,则MHTML Protocol Handler不能解释该文件;
    3. MHTML Protocol Handler会忽略远程文件中“--_boundary_by_mere—”后的所有无关内容;
    4. MHTML Protocol Handler会忽略远程服务器的Content-Disposition、X-Frame-Options等响应头。

    协议访问格式:mhtml: [Mhtml_File_Url]![Original_Resource_Url]

    [Original_Resource_Url]从消息体的Content-Location处获得。如果[Original_Resource_Url] 不能从[Mhtml_File_Url]中获取,IE就会尝试下载[Original_Resource_Url]和返回下载内容。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    multipart/related自然是multipart_subtype其中一种,例如demo.html:

    Content-Type: multipart/related; boundary="_boundary_by_mere"

    --_boundary_by_mere
    Content-Location:demo
    Content-Transfer-Encoding:base64

    PGh0bWw+PGJvZHk+TUhUTUwgREVNTyE8L2JvZHk+PC9odG1sPg==
    --_boundary_by_mere--

    若使用mhtml协议,访问  mhtml:demo.html!demo  即可访问文件的demo数据块。

    参考文章:IE下MHTML协议带来的跨域危害d4rkwind

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    HTTP协议和MIME协议是两个概念。多用途网际邮件扩充协议(MIME)是 Multipurpose Internet Mail Extensions 的缩写。

    multipart类型,是MIME邮件的精髓。邮件体被分为多个段,每个段又包含段头和段体两部分,这两部分之间也以空行分隔。常见的multipart类型有三种:multipart/mixed, multipart/related和multipart/alternative。如果在邮件中要添加附件,必须定义multipart/mixed段;如果存在内嵌资源,至少要定义multipart/related段;如果纯文本与超文本共存,至少要定义multipart/alternative段。

    什么是“至少”?举个例子说,如果只有纯文本与超文本正文,那么在邮件头中将类型扩大化,定义为multipart/related,甚至multipart/mixed,都是允许的。

    1.http协议的主体信息部分是使用html来包装的,http协议刚开始是用来传送html的,只是和MIME协议结合才可以传送别的格式数据。

    2.http与MIME应该分别是两个此协议,MIME可以附属在其他许多协议上,例 如SMTP协议,利用MIME协议可以在协议中包含特殊格式的信息文本.例如:在http协议中包含pdf格式的数据,可以在浏览器中打开,在邮件中可以 利用MIME协议来包含pdf附件,其余其他可以包含MIME数据的协议,我就不清楚了,我想,这应该可以有很多,因为从原理上说,这仅仅是按一定格式包 含一段特殊数据。

    3.浏览器可以认为是用来解读http协议的客户端,最终显示的内容是http协议数据体部分html格式的数据。

  • 相关阅读:
    115. Distinct Subsequences
    Kafka介绍-copy
    Flume的简单介绍-copy
    storm简介、原理、概念-copy
    日志管理ELK-copy
    安装Nginx+Lua+OpenResty
    Nginx(四)------nginx 负载均衡-copy
    Nginx(一)------简介与安装-copy
    Nginx(二)nginx.conf 配置文件-copy
    Nginx(三)nginx 反向代理-copy
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4383009.html
Copyright © 2011-2022 走看看