|
1
3
不过,当说“二进制格式”时,大多数人都会听到字段长度的固定格式和其他非常烦人的事情。一般来说,如果您从数据传输的角度看不绝望,我认为没有理由这样做[尽管您可以对.net对象进行二进制序列化,以便可以重新实例化它们[或者查看.net的“协议缓冲区”库]]。 总结: 我觉得还可以。让你的船漂浮的东西。 |
|
|
2
7
REST是用于构建web服务的体系结构样式。Roy Fielding根据他在设计HTTP方面的经验阐述了它,但它超越了HTTP。例如,您可以在普通电子邮件交换上部署RESTful服务。 资源的其余表示形式可以是您喜欢的任何形式,尽管Roy确实强调人们应该尝试使用精心设计的标准表示形式。二进制没有问题。事实上,像JPEG和PNG这样的图像表示是二进制的。谷歌的 Protocol Buffers 还提供了创建结构化数据的紧凑二进制表示的方法。 因此,简单的回答是,您当然可以使用RESTful并使用二进制表示法和一个自行开发的二进制替代HTTP。 实际上,我强烈建议您使用HTTP以提高效率。如果您使用自己的协议,那么您将失去位于服务器和客户端之间的出色HTTP缓存基础设施所提供的所有优势。完整的客户端负载正好落在服务器上,而不是分散在中间缓存上。 2010年4月10日:在基于HTTP的RESTAPI中,我们现在支持Java序列化对象和 Kryo XML、JSON和XHTML之外的二进制表示。Kryo序列化库在不需要任何特殊协议的情况下,性能明显优于其他库。另一种减少带宽的方法是使用 HTTP compression |
|
|
3
1
我不确定我是否理解你的条件。REST表示可以是完全二进制的,并且仍然通过纯HTTP传输。没有必要发明一种新的协议来传输二进制数据。只需将您的需求减少到一种记录良好的媒体类型(您可以自由发明)。 关于二进制资源表示, Fielding himself don't forget the hypertext constraint
如果你的意思是你想创建一个自定义的,仅二进制的,超文本驱动的媒体类型-这是完全合理的。 如果你说的是发明一些HTTP的自定义扩展,除非绝对必要,否则我会避免这种情况(而且你所描述的内容在我看来并没有达到那种程度)。 |
|
|
4
1
根据这项声明,我建议从两种选择中选择一种。直接TCP/IP套接字或WCF。这些选项为您提供了最大的灵活性。如果您希望不依赖于传输,并且希望从应用程序协议的干净状态开始,WCF是一个很好的解决方案。 REST施加一组约束,限制分布式应用程序的行为,以获得某些有益的特性。如果您将服务端点视为调用操作的方式,那么我建议REST根本不适合您的需要。 不知何故,我不认为你是否发送二进制或文本有效载荷应该是你在这一点上最大的关注。 |