移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?
2023-09-27 14:28:38 时间
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协议详解+经典面试题
- 物联网常见协议之Amqp协议及使用场景解析
- HTTP协议详解
- Linux网络编程(四)-协议03-TCP协议01:通信时序【三次握手(建立连接)、传数据、四次挥手(断开连接)】【发送端以数据包为单位发送(数据包大小自定义),接收端按自定义大小滑动窗口提取数据】
- Linux网络编程(四)-协议01:概述(数据传输、解释的规则)【应用层协议:HTTP、FTP...】【传输层协议:TCP、UDP】【网络层协议:IP】【链路层协议:ARP、RARP】
- HTTP协议扫盲(四)HTTP协议进阶 - MIME类型
- iOS开发网络篇—网络请求(HTTP协议)小结(转)
- DNS 协议
- HTTP协议之chunk编码(分块传输编码)
- 网络密钥交换协议——Diffie-Hellman
- Http协议与请求, Post请求与Get请求的区别,Base64和URL编码,md5,sha-1加密,对称和非对称加密,支付宝微信第三方支付
- RTSP协议介绍
- 你知道吗?如何学习TCP协议
- Unity3D 网络通信_HTTP协议:获取网络图片、内容
- 结合Wireshark捕获分组深入理解TCP/IP协议栈之HTTP协议
- 自己动手学TCP/IP–http协议(http报文头)
- http协议使用实例
- Java语言实现简单FTP软件------>FTP协议分析(一)