当前位置:  开发笔记 > 运维 > 正文

MTOM如何运作?

如何解决《MTOM如何运作?》经验,为你挑选了3个好方法。

MTOM是W3C消息传输优化机制,一种有效地向Web服务发送二进制数据和从Web服务发送二进制数据的方法.

它一般如何运作?



1> Jops..:

这一切都始于SOAP是XML.当您发送除文本之外的任何内容(例如图像)时,必须将其转换为XML处理器可以理解的数据类型.

如果没有MTOM,您的图像将转换为base64Binary并放置在SOAP信封的中间.此转换过程使数据变胖.

一个非常looooooooooooooooooooooong base64Binary字符串

这是一个简单的说明:

在此输入图像描述

使用MTOM,图像将作为MIME附件在信封外部传输- 简而言之,它将根据其原始数据类型发送:jpg,png或gif.当然它仍然作为二进制数据传输,但这一次,没有与XML相关的转换,避免了计算开销.XOP进入图片,因为它是给出外化图像位置的图片.


    
        
            
        
    

Content-id:"SomeUniqueID"
Content-Type:image/png

图像二进制数据


很好的插图.香蕉符号也很有趣和娱乐.Mtom完全是岩石.

2> Richard Nien..:

如果将Wireshark(或启用的System.Net日志记录)放在非MTOM启用的服务上,您应该看到SOAP请求的二进制数据编码为BASE64.将其作为BASE64发送会增加二进制数据的大小,但(我假设)使其更具互操作性.

使用MTOM,SOAP消息将作为MIME消息发送,BASE64编码将替换为占位符.然后将二进制数据放在分隔符之间(对于每个二进制数据发生),然后放在SOAP请求的末尾.然后以未编码的形式发送二进制数据.IIRC,MTOM还确定将其作为MIME消息发送是否会增加SOAP调用的大小,如果不提供保存,它将将其作为普通SOAP消息发送.

这提供了通过线路发送的消息的示例.


"然后,二进制数据被放置在分隔符之间"或者,可以将二进制数据的链接作为SOAP消息的一部分发送,以允许二进制数据存在于XML之外并且例如在HTTP集群上下载./S服务器的性能.这被称为"按参考"

3> sotn..:

其他答案没有提到的一些因素.有人可能会认为为什么MTOM没有被用作默认值,因为它比文本消息编码(Base64)"更快".这是因为MTOM并不总是更快.MTOM应该只用于大型消息传输,因为它带来了开销.对于小尺寸的消息,MTOM的性能将比文本消息编码(Base64)差.

如果MTOM用于大型消息,则它比Base64更快,因为它使用原始二进制文件进行数据传输.要理解这一点,应该了解Base64的工作原理.

Base64使用6位(log2(64))来表示1个字符,这意味着base64使用4个字符来表示24位(3个字节).因此,如果消息大小为n个字节,base64将使用4*(n/3)个字节来表示您的数据,这意味着它将比MTOM 慢1/3.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有