Socket 和 http 的区别
HTTP
超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,HTTP是应用层协议,主要解决如何包装数据。HTTP协议详细规定了浏览器与服务器之间相互通信的规则,是万维网交换信息的基础。HTTP是基于请求-响应形式并且是短连接,并且是无状态的协议。针对其无状态特性,在实际应用中又需要有状态的形式,因此一般会通过session/cookie技术来解决此问题。
Http请求的协议
- http协议
- 基于http协议的soap协议
优点
- 基于应用级的接口使用方便
- 要求的开发水平不高,容错性强
缺点
- 传输速度慢,数据包大
- 如实现实时交互,服务器性能压力大
- 数据传输安全性差
Http显著特点
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
- 在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
- 在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
适用场景:一般用于实时性要求不那么高的情况
- 信息反馈
- 图片上传
- 获取新闻信息
- 公司OA服务
- 互联网服务
Socket
Socket不属于协议范畴,而是一个调用接口(API),Socket是对TCP/IP协议的封装,通过调用Socket,才能使用TCP/IP协议。Socket连接是长连接,理论上客户端和服务器端一旦建立连接将不会主动断开此连接。Socket连接属于请求-响应形式,服务端可主动将消息推送给客户端。
socket可以使用TCP或UDP协议
TCP
传输控制协议,面向连接的的协议,稳定可靠。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
UDP
广播式数据传输,UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
优点
- 传输数据为字节级,传输数据可自定义,数据量小。相应的移动端开发,手机费用低
- 传输数据时间短,性能高
- 适合C/S之间信息实时交互
- 可以加密,数据安全性高
缺点
- 需要对传输的数据进行解析,转化为应用级的数据
- 对开发人员的开发水平要求高
- 相对于Http协议传输,增加了开发量
适用场景:一般用于比较即时的通信和实时性较高的情况
- 推送
- 聊天
- 保持心跳长连接
- 网络游戏
- 银行交互
- 支付
参考:
http://blog.csdn.net/zeng622peng/article/details/5546384
相关推荐
http和socket简介和对比,有哪些区别,差异等等的。
这是关于http和socket的区别 详细描述,http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的面向对象的协议,常基于TCP的连接方式
NULL 博文链接:https://zhoujianghai.iteye.com/blog/1195988
socket阻塞与非阻塞的区别 socket socket阻塞与非阻塞的区别
如果您找到了此组件,也必然知道 Socket 和 AJAX 的区别。 迈云 JavaScript Socket 类可以在网页上创建原生Socket,并与服务器端通讯。Socket具有持久、实时的优点,适合IM、聊天室、网络游戏、实时更新、实时推送...
IP协议与socket之间的区别
此案例采用modbus-tcp协议与设备进行通信,且分别应用Socket与第三方组件NModbus两种方式进行通信。
为大家开发 服务端 开导一下 望能打动你的心
开源一份HPSocket的tcp的高效传输方案,自动组包分包,我精简了HPSocket4C.dll文件删除了所有的代理,http,udp等等一大堆的东西,dll文件又经过upx压缩仅80kb大小,只保留tcp pack部分。pack本来就是可靠传输,一般...
TCP与UDP区别(socket编程)
demo实现socket的通信 包括 tcp 客户端和服务端之间的通信 udp客户端和服务端之间的通信
使用SocketTool工具测试与欧姆龙FINS通信,发送数据和回复数据的报文记录,对第一次使用欧姆龙的人有很大的帮助;
这样做的结果就出现了插口接口(Berkeley Socket),这个系统被称为Berkeley UNIX 或BSD UNIX。(TCP/IP 首次出现在BSD 4.1 版本release 4.1 of Berkeley Software Distribution)。 由许多计算机厂商,都采用了...
Unix环境下利用Socket和消息队列构建应用通信平台
安卓端Socket连接的方法,aidl+server,可以下载串口调试助手自己测试,可接受和发送消息
项目描述:一款模拟群体聊天室的应用,该应用提供给用户一个群体聊天的平台,可以通过设置不同的用户名以区别不同用户发送出来的消息。应用通过 AsyncUdpSocket发送和接受消息,通过判断IP显示非本机IP发送的其他消息...
TcpClient类和TcpListener类属于.NET框架下网络通信中的应用层类,为Socket通信提供了更简单,对用户更为友好的接口。应用层类比位于底层的Socket类提供了更高层次的抽象,封装了套接字的创建,不需要处理连接的细节...
NULL 博文链接:https://hengstart.iteye.com/blog/842529
Socket编程之聊天程序 - 模拟Fins/ModBus协议通信过程 TcpChatter - Blog项目源代码(OpenSource) ----------------------------------------- 设备控制软件编程涉及到的基本通信方式主要有TCP/IP与串口,用到的...
QT_的socket_与_Linux_的socket通信