【问题标题】:Transfer XML as text or as Stream (Binary)将 XML 传输为文本或流(二进制)
【发布时间】:2014-06-29 22:29:25
【问题描述】:

我们希望将 XML 传输到可以接受文本和二进制数据的 WEB API。 就流量大小而言,传输它的最佳方式是什么?

以明文形式还是以二进制数据流形式传输更好?

【问题讨论】:

    标签: asp.net-web-api transfer-encoding


    【解决方案1】:

    如果您担心要传输的 XML 数据太大,那么您可以尝试使用压缩,gzip 压缩是最流行的。 Web API 对此有一些内置功能,但如果您愿意,也可以“自行开发”,例如,如果您想要不同的压缩算法。

    幸运的是,有大量代码可以帮助您压缩和解压缩数据流。看看以下内容:

    最后,您可以考虑使用 Expect: 100-Continue。如果 API 客户端将要发送带有大型实体主体的请求,例如 POST、PUT 或 PATCH,他们可以在其 HTTP 标头中发送“Expect: 100-continue”,然后等待“100 Continue”响应发送他们的实体主体。这允许 API 服务器在浪费带宽返回错误响应(例如 401 或 403)之前验证请求的大部分有效性。支持这个功能不是很常见,但在某些场景下可以提高 API 响应能力并减少带宽。 (RFC2616 §8.2.3)。

    虽然我很欣赏一个充满链接的答案,如果这些链接过时或被删除,可能会出现问题,但在这里解释 Web API 压缩只是一个太大的主题。希望我的回答能引导您朝着有用的方向前进。

    【讨论】:

    • 感谢您的详细解答。另外,能否请您告诉我相同字符串的二进制是否确实比字符串本身的大小更小?
    • 在最低级别,所有数据都以二进制形式传输,如 0 和 1,所以我不确定您的意思。如果您压缩数据流,那么它几乎肯定会比传输未压缩的文本时更小。但除此之外,我认为没有任何显着差异。
    猜你喜欢
    • 2023-04-04
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2010-12-03
    相关资源
    最近更新 更多