http1.1长连接无法实现推送,个人理解

http协议,是一个应用层的传输协议.

也就是说 它传输的内容 是 tcp 或 udp 头之后的内容. 这个内容 符合 哪个版本的约定就是 几点几的协议.

所以 http 协议内容 在应用程序里就可以更改. 

socket 是传输层的协议,这一次 基本上是操作系统在完成, 基本是 驱动级的.

http是内容,运输工具是 socket 

长连接 指的就是 socket的 tcp连接 -- 也就是 通信双方的 主机ip地址+端口号

虽然 socket 实现了长连接,但是 http 通信 存在一个 巨大的问题缺陷, 它都是 通过 问答来实现, 客户端问,服务器答.

socket虽然保持着长连接,在问答完成之后 没有关闭,但是 客户端 不具备 应答功能,即使服务器进行了推送,客户端也无法进行回应.

回想过程; 点击网页连接 发出 get 请求, 浏览器会产生一个response的对象等着接受 服务器的返回数据. 收到后进行相应的处理.

而如果是服务器主动推送的话, 没有专门的 response对象等待接受 所以无法实现推送.

以上是我个人的理解,欢迎网友进行讨论指导.

posted on 2021-12-11 23:45  boy8199  阅读(219)  评论(0编辑  收藏  举报