http1.1长连接无法实现推送,个人理解
http协议,是一个应用层的传输协议.
也就是说 它传输的内容 是 tcp 或 udp 头之后的内容. 这个内容 符合 哪个版本的约定就是 几点几的协议.
所以 http 协议内容 在应用程序里就可以更改.
socket 是传输层的协议,这一次 基本上是操作系统在完成, 基本是 驱动级的.
http是内容,运输工具是 socket
长连接 指的就是 socket的 tcp连接 -- 也就是 通信双方的 主机ip地址+端口号
虽然 socket 实现了长连接,但是 http 通信 存在一个 巨大的问题缺陷, 它都是 通过 问答来实现, 客户端问,服务器答.
socket虽然保持着长连接,在问答完成之后 没有关闭,但是 客户端 不具备 应答功能,即使服务器进行了推送,客户端也无法进行回应.
回想过程; 点击网页连接 发出 get 请求, 浏览器会产生一个response的对象等着接受 服务器的返回数据. 收到后进行相应的处理.
而如果是服务器主动推送的话, 没有专门的 response对象等待接受 所以无法实现推送.
以上是我个人的理解,欢迎网友进行讨论指导.