http特点:
1、灵活可扩展:  可以扩展头字段实现功能(提升复杂度)

2、可靠传输:HTTP并不能100%保证数据一定能够发送到另一端,在网络繁忙、连接差等恶劣环境时,也有可能收发失败,可靠只是向使用者提供了一个承诺,会在下层用多种手段尽量保证数据的完整送达(效率没有udp高)

如果要100%保证数据收发查成功就不能使用http协议或者TCP协议了,而是用各种消息中间件(MQ,Kafka等)

mq的设计目的就是消息传输,保证不丢失,为此用了很多的手段,比如消息队列、路由、存储等等。而http的目的不在于此,它的可靠性基于tcp,而tcp不能保证消息100%发送  mq也不是100%  区别是99.9%和99.999%
    
3、应用层协议:比 FTP、SSH 等更通用功能更多,能够传输任意数据;(上层协议用户方便,通信效率低)

4、请求-应答通信模式:客户端主动请求,服务端被动响应 (不适合IM场景所以出现了WebSocket)
    
5、无状态协议:状态:客户端或者服务器里保存的一些数据或者标志,记录了通信过程中的一些变化信息,每个请求都是互相独立,毫无关联的,两端都不会记录请求相关的信息

无状态有的时候是优点有的时候是缺点,看应用场景,在需要扩展的时候无状态就是优点,在需要会话保持的时候就是缺点。

但无状态可以很容易变成有状态,而反过来就很难,这就体现了http的灵活性。

 


    问题
   HTTP、WebService、RPC、RESTful、gRPC、WebSocket 这几个概念之间的联系和区别,纠结...??