一、通讯模式
单工模式
单工,就是两者通信单向进行,只能一个主动发信号一个被动去接受,不能角色互换。
举例:行人只能接受红绿灯的信号但是不能向红绿灯发信号,红绿灯只能发出信号
不能接收信号。
半双工模式
半双工,两个事物都可以发信号,但是不能同时进行。
举例:类似于踢足球,只能一个传给另一个人,两个人不能同时传球,球只有一个,
信道只有一个。
全双工模式
全双工,两个事物可以同时发送和接受信息。
举例:两个人互相打电话,你可以说也可以听电话。在Java里套接字socket就是
全双工的。
二、连接模式
短链接
连接->数据传输->关闭连接
HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,单任务结束后就
中断连接.也可以这样说:短连接是指Socket连接后发送后接收完数据后马上断开连接
长连接
连接->传输数据->保持连接->传输数据->….->关闭连接
长连接指建立socket连接后不管是否使用都保持连接,但安全性较差.
保持连接通常通过心跳方式进行保持。
http的长连接
HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP1.1默认进行持久连接,
HTTP1.1和HTTP1.0相比较而言最大的区别就是添加了持久连接支持(貌似最新的http1.0
可以显示的指定keep-alive)但还是无状态的,或者说是不可信任的.
什么时候用长连接,短连接?
长连接应用场景描述,报文发送频繁、消息实时性有要求、连接不能太多。例如 聊天工具
短连接应用场景描述,高并发和吞吐性能有要求。 例如 web网站请求