MTOM 是如何工作的?

2023-12-19

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

它一般如何运作?


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

如果没有 MTOM,您的图像将转换为base64二进制并正好放在 SOAP 信封的中间。这个转换过程使得数据变得很胖。

一个非常looooooooooooooooooooooong的base64二进制字符串

这是一个简单的说明:

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

<soap:Envelope>
    <soap:Body>
        <tns:data>
            <xop:include href="SomeUniqueID-ThatLeadsToTheImage"/>
        </tns:data>
    </soap:Body>
</soap:Envelope>

内容 ID:“SomeUniqueID”
内容类型:image/png

图像二进制数据在这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MTOM 是如何工作的? 的相关文章

随机推荐

  • 始终隐藏虚拟键盘

    实际上我有一个编辑文本 当我单击编辑文本虚拟键盘弹出窗口时 但我只是想即使在单击编辑文本后也始终隐藏虚拟键盘 并且编辑文本应该可以使用系统键盘打印 我该怎么做 我的代码 EditText edtNote EditText findViewB
  • MS Access 触发器?

    我在 MS Access 中有两个名为 Insert Record 和 Delete Record 的表 两个表具有相同的字段 但一个表有记录 而另一个表没有记录 问题 我希望 每当我从表 Insert Record 中删除任何记录时 整个
  • 在 Android L 上运行本机库错误:仅支持位置无关的可执行文件 (PIE)

    当我在 Android L Nexus 5 上运行本机代码时 出现错误 错误 仅支持位置无关的可执行文件 PIE 相同的代码在我的 Samsung Galaxy S3 Android 4 3 上正确执行 这是我的Application mk
  • 是否有“全包同级”CSS 选择器之类的东西?

    My HTML p Doggies p p class green guys Froggies p p Cupcakes p p Piggies p 一个全包兄弟选择器 正如我希望的那样 当用于选择 green guys 的兄弟姐妹时 将选
  • Firebase 和 React 的 useEffect 清理功能

    我有一个问题 我的 useEffect 导致以下警告 无法对已卸载的组件执行 React 状态更新 这是一个空操作 但它表明应用程序中存在内存泄漏 要修复此问题 请取消 useEffect 清理函数中的所有订阅和异步任务 仅当从该组件处于活
  • 如何在 Qt 项目中包含 OpenSSL

    我是 Qt 的新手 我已经做了一些谷歌搜索 但找不到足够详细的答案 我需要在基于 qmake 的 Qt 项目中使用 OpenSSL 我如何下载 安装 链接它 以便我可以执行包含语句并在我的代码中使用它的功能 假设使用 Windows 您可以
  • 通过引用传递 std::string 数组

    我想创建一个不通过引用传递 std string 进行修改的函数 void changeStr std string str str Hello World 而是一个完整的 固定大小的 std strings 数组 该函数将执行完全相同的操
  • AngularJS - 当另一个范围内的键为 true 时更改范围值

    我有一个像这样的 ng repeat li p car model p span span span X span li 基于此 scope cars scope cars model Ford check true model Honda
  • 使用本机登录页面的登录凭据实施 Oauth2

    我正在尝试实现基于 Oauth2 的 Web 服务 我有 clientID clientSecret 授权端点 令牌端点和回调 Url 自定义架构指向 android 本机页面 当我检查其他基于 Oauth2 的 API 时 它有登录 Ur
  • 为乒乓球游戏的神经网络寻找正确的参数

    我在 Pong 游戏中实现深度神经网络时遇到了一些麻烦 因为无论我更改哪些参数 我的网络总是发散 我玩了一个 Pong Game 并实现了一个基于 theano lasagne 的深度 q 学习算法 该算法基于 Google Deepmin
  • 找不到存储过程,但可以执行它

    我是 SQL Server 新手 创建了我的第一个存储过程 它执行得很好 我可以在 可编程性 存储过程 下找到它 因此我弹出一个新查询并输入以下语句 use name of database exec name of stored proc
  • 如何对甘特条进行聚类而不重叠?

    使用 create gantt 我有重叠的开始日期和结束日期 import plotly plotly as py import plotly figure factory as ff import plotly df dict Task
  • 获取应用服务器下的真实(虚拟)主机名

    我有一个在 Jetty 下运行的应用程序 我希望该应用程序返回自引用绝对 URL 生成 RSS 提要时 因此客户端必须能够在没有 当前 URL 上下文的情况下工作 问题是我事先不知道应用程序将部署在哪个主机名下 而且很可能它将部署在多个主机
  • 通过 Powershell 为另一个用户设置环境变量

    我正在尝试从管理员用户 ABC 的 powershell 设置用户 XYZ 的环境变量 我正在使用 Start Process 启动用户 XYZ 的 powershell 但我无法捕获输出 所有这些过程都需要用Java来完成 有人可以帮我吗
  • 将对象实例添加到 gradle 插件扩展

    我有类似下面的插件 其中有一个外部命名空间 其中有一个 具体 实例 mother 一个对象加上另一个集合 children family mother firstname John lastname Cleese children son
  • Spring bean 的标准命名

    有人知道应用程序上下文中 Spring bean 的标准命名吗 我使用了驼峰命名法 但我不确定是否存在一种标准 我在网上搜索了相关内容 但没有找到任何东西 Bean 命名约定 Spring 框架参考第 1 3 1 节 https docs
  • 使用Excel作为Access数据库的前端(使用VBA)

    我正在为朋友构建一个小型应用程序 他们希望能够使用 Excel 作为前端 UI 基本上是 Excel 中的用户表单 他们在 Excel 中有一堆数据 他们希望能够查询这些数据 但我不想使用 Excel 作为数据库 因为我认为它不适合该目的
  • JBoss 6.4.20 补丁中允许使用哪些版本的 Jackson?

    我正在尝试更新我的 Jackson 版本6 4 20 JBoss补丁 https www redhat com archives rhsa announce 2018 May msg00028 html 我在用着org codehause
  • 匹配 bool 与 const void* 重载的函数的地址

    我正在阅读使用随机数生成器作为 C 中的函数出现意外值 https stackoverflow com questions 27225614 unexpected value using random number generator as
  • MTOM 是如何工作的?

    MTOM 是 W3C 消息传输优化机制 是一种高效地向 Web 服务发送二进制数据或从 Web 服务发送二进制数据的方法 它一般如何运作 这一切都始于 SOAP 的事实XML 当您发送文本以外的任何内容 例如图像 时 必须将其转换为 XML