大多数Http客户端架构是半双工的协议模型,并没有利用TCP的全双工功能,有全异步Http的架构吗
【大多数Http客户端架构是半双工的协议模型,并没有利用TCP的全双工功能,有全异步Http的架构吗】 HTTP2 了解一下?
■网友
request/response模式是为了简化设计,保证请求处理的有序可控。如果允许不等待响应就发送下个请求则可能存在上个请求处理失败,后续请求无法执行这样的问题。
当然HTTP 1.1还是有一个pipeline模式允许客户端连续提交请求而不等待响应,不过限制比较多,没什么人用。
HTTP2则实现了请求的多路复用,允许多个请求和响应包在一个TCP连接里交错传输,相比pineline模式更加完备和高效,用HTTP2是可以实现你想要的功能的。
■网友
你的问题跟Http实现的全双工/半双工关系不大,你只需要“发请求,但不等待响应”的语义,可以开一个发送线程来实现,或者使用异步模式的库:
HINTERNET WINAPI WinHttpOpen( _In_opt_ LPCWSTR pwszUserAgent, _In_ DWORD dwAccessType, _In_ LPCWSTR pwszProxyName, _In_ LPCWSTR pwszProxyBypass, _In_ DWORD dwFlags);WINHTTP_FLAG_ASYNCUse the WinHTTP functions asynchronously. By default, all WinHTTP functions that use the returned HINTERNET handle are performed synchronously. When this flag is set, the caller needs to specify a callback function through WinHttpSetStatusCallback.
■网友
没错,有。WebSocket。
WebSocket 是什么原理?为什么可以实现持久连接? - Ovear的回答 - 最近准备着手我的个人博客,正好想做成你所说这种全异步http的架构,用iframe浏览页面,在顶层维护一个socket连接,数据全走这里,完全脱离了服务器渲染,用户的浏览路径用锚点链接模拟一个,不然url不会改变,再尝试一下可能后期做成无后台的,用用模板引。
推荐阅读
- 咋解决电信营业厅对http网址的污染
- 关于用phpfsocket 写Post, 模拟http 报文怎样写入要传输的处理数据
- 轮胎|【注意】不懂别乱换,你不知道的轮胎调换准则
- 为啥微信没有为安卓平板推出客户端
- 资本|仅剩沉默的大多数在线教育融资2020:除了资本青睐的独角兽
- Python3.4和3.5区别大么
- Foxmail、Outlook等邮件客户端,哪个综合体验更好,与网页邮箱相比又怎样
- 1、相同的网址,为啥浏览器http和https都能登录,而爬虫不行\n2、网页下载内容不全
- C语言指数函数代码
- 哈尔滨市继红小学公布诺如病毒详细感染情况 绝大多数感染者已无明显症状
