1、http是应用层的协议,是基于tcp的;
http1.0是无状态的短连接,http1.1是无状态的伪长连接;
HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。如果需要服务端主动给客户端发消息需要用到socket。
2、java socket 可以基于tcp,也可以基于udp;
基于tcp的包含长连接和短连接,客户端和服务端都允许主动断开连接,主动断开的那一边会出现time_wait状态,被动断开的一方会出来close_wait。理论上来讲,只要双方都不断开连接,他们之间的连接就会一直存在,但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致Socket 连接断连,因此需要心跳包来维持它们之间的连接。
3、websocket可以理解为http协议的升级,可以实现长连接;
客户端和服务端都可以发送和接受消息;比如消息推送的场景就需要用到websocket。
4、webservice包含soap和restful两种方式;
SOAP=RPC+HTTP+XML,把http当成传输层的协议来使用;
restful:把http当成是应用层的协议来使用
5、分布式调用经历的阶段:1)RMI 2)XML 3)RPC(远程过程调用) 4)SOAP(简单对象访问协议) 5)RESTFUL