目前的web应用,不论是网页版还是移动app都是基于http协议的。
有这样几个方案: 1. soap协议 2. 纯http协议,以请求参数的键值形式发送请求参数,以json响应 3. 纯http协议,请求响应参数都是json 4. RESTful,请求响应参数可以参考2、3 5. 还有一种方式自己基于http协议定义传输方案,用的应该不多。如果你要用可以考虑使用MessagePack作为数据序列化/反序列化方案 7. 连http也不用了,基于socket实现传输方案,估计除了公司内部通讯应该不会有人采用 个人认为第一种过于沉重,随着功能越来越复杂,传输的报文会越来越大。xml本身就是一个沉重的东西。 第二种比较容易,对于服务器来说最简单,不过客户端要自己拼请求参数,不是很方便 第三种比第二种稍微复杂的在于,每次请求都要指定Content-Type:text/json。否则服务器会收不到请求参数或出错。 第四种,网上有很多文章也很推崇。但是由于跟传统的mvc方式差异巨大,没有了解过的人理解比较困难。曾经跟同事讲过这种模式,所有人都一脸茫然。 第五种,可以基于http协议+MessagePack传输二进制数据,这是前面五种方式效率最高,传输字节数最少的方式。不过由于MessagePack本身的限制,传输对象时可能不够灵活,一个对象的全部属性都要被序列化,而不能选择序列化。如果要定制传输的数据,就要调用它的底层api,比较麻烦。 使用第二、第五种方式,还可以实现只需要开放一个uri,就能实现全部客户端与服务器的交互。只需要根据参数值决定具体要访问哪个模块和模块里的哪个操作。如果设计的好,可以做到很灵活,而且也能达到理想的低耦合高内聚。 每种方式都各有优缺,关键就看团队的技术倾向。 |
|
来自: instl > 《android-ios》