通过网络发送原始字节。坏?

时间:2016-05-11 10:12:36

标签: networking encoding base64

This发布了“用于什么是base 64编码?”的问题。表示:

  

当您想要通过网络发送某些二进制数据时,通常不会通过以原始格式在线路上传输位和字节来实现。为什么?因为某些媒体是为流文本而制作的。你永远不会知道 - 某些协议可能会将你的二进制数据解释为控制字符(如调制解调器),或者你的二进制数据可能被搞砸了,因为底层协议可能认为你输入了一个特殊的字符组合(比如FTP如何转换行)结局)。

我在Java中使用套接字来通过网络发送二进制数据。据我所知,通过网络发送二进制数据非常常见,特别是如果你有大数据的话。我不明白为什么有些设备可能会错误地解释二进制数据,因为它包含TCP标头等。

SOAP MTOM还通过网络发送二进制数据。

我误解了什么吗?我很生气,因为这篇文章有许多赞成并被接受。

1 个答案:

答案 0 :(得分:2)

您链接的答案不正确,它没有明确提及一些示例。答案也在引用中:

  

因为某些媒体是针对流式文字制作的

套接字以字节为单位处理,它们不关心它们传输的内容。它是更高级别的协议,或者它们传输的消息格式。

当这些二进制数据被包含在这些协议或格式的信封中时,它们可能会造成严重破坏。图像字节中的小于(<)字符是完全有效的,但是当在XML消息中使用时,它将破坏XML。其他字符(如控制字符)可能会影响协议处理程序如何解释更多数据。

因此,base64用于以安全传输方式包装二进制数据,否则将无法安全。