移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
2013-07-03 11:22
1521 查看
HTTP 是应用层协议,TCP 是传输层协议(位于应用层之下),放在一起类比并不合适。
不过猜测楼主是想对比 “标准 HTTP 协议” 还是 “自定义的协议(基于 TCP Socket)” 。
一般来说,移动应用推荐使用 HTTP 协议,有很多优点:
HTTP 发展成熟
HTTP 几乎已经快成为一种通用的 Web 标准,Web Services、REST、Open API、OAuth 等等都是基于 HTTP 协议的。它已经不仅仅是 Hyper Text 的传输标准了,几乎所有数据的传输(多媒体、XML、JSON)都可以采用 HTTP。
后台复用
因为很多应用,除了有移动端,还有Web端,甚至桌面端。
Web 版中前后台交互,无论是页面请求还是 AJAX 请求,都是采用标准 HTTP 协议。那么其他的客户端没有理由重新设计一套协议。
HTML 5 应用
现在不少移动产品都采用或者半采用 HTML 5 技术,那么和服务器的交互又回归到 AJAX 上。不用说,还是离不开 HTTP。
但是也有一些局限性,比如以下场景就不适合 HTTP 协议:
实时数据推送
除了 iOS 开发提供有标准的 Apple 消息推送中心,其他移动产品可能还是要采用 Socket 长连接才能保证实时通讯。
比较常见的有很多即时通讯软件采用的 XMPP 协议。
流媒体
适用于音频播放、视频播放、语音会议等等,一般可能采用 RTMP 协议。
不过猜测楼主是想对比 “标准 HTTP 协议” 还是 “自定义的协议(基于 TCP Socket)” 。
一般来说,移动应用推荐使用 HTTP 协议,有很多优点:
HTTP 发展成熟
HTTP 几乎已经快成为一种通用的 Web 标准,Web Services、REST、Open API、OAuth 等等都是基于 HTTP 协议的。它已经不仅仅是 Hyper Text 的传输标准了,几乎所有数据的传输(多媒体、XML、JSON)都可以采用 HTTP。
后台复用
因为很多应用,除了有移动端,还有Web端,甚至桌面端。
Web 版中前后台交互,无论是页面请求还是 AJAX 请求,都是采用标准 HTTP 协议。那么其他的客户端没有理由重新设计一套协议。
HTML 5 应用
现在不少移动产品都采用或者半采用 HTML 5 技术,那么和服务器的交互又回归到 AJAX 上。不用说,还是离不开 HTTP。
但是也有一些局限性,比如以下场景就不适合 HTTP 协议:
实时数据推送
除了 iOS 开发提供有标准的 Apple 消息推送中心,其他移动产品可能还是要采用 Socket 长连接才能保证实时通讯。
比较常见的有很多即时通讯软件采用的 XMPP 协议。
流媒体
适用于音频播放、视频播放、语音会议等等,一般可能采用 RTMP 协议。
相关文章推荐
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
- 实现采用客户/服务器通信模式,基于TCP网络通信协议的多客户端简单应用
- [置顶] 基于iOS的网络音视频实时传输系统(四)- 自定义socket协议(TCP、UDP)
- 使用EzHttp框架 开发基于HTTP协议的CS轻应用
- 使用SuperSocket实现TLV自定义协议网络通信的Demo
- 使用SuperSocket实现TLV自定义协议网络通信的Demo
- Node.js与网络:Node.js对TCP、UDP、Socket、HTTP等协议的实现和支持
- 实现采用客户/服务器通信模式,基于TCP网络通信协议的多客户端简单应用之案例分析
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(一)----基础类库部分(来源:http://blog.csdn.net/yangjundeng/archive/2005/03/17/321920.aspx)
- Node.js与网络:Node.js对TCP、UDP、Socket、HTTP等协议的实现和支持
- 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例
- 网络层、传输层、应用层、端口通信协议编程接口 - http,socket,tcp/ip 网络传输与通讯知识总结
- iOS开发中大部分App的网络数据交换是基于HTTP协议的。本文将简单介绍在Swift中使用HTTP进行网络请求的几种方法。
- [精通WindowsSocket网络开发-基于VC++实现]第三章——WindowsSockets基础—TCP,UDP程序
- JAVA系列课程讲座一:使用Socket通信实现网络通信程序(TCP方式)
- [精通WindowsSocket网络开发-基于VC++实现]第三章——WindowsSockets基础—TCP,UDP程序 .
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- Socket编程——基于TCP实现自己的通信协议
- TCP通讯socket自定义协议的实现