【问题标题】:Can I speak HTTP/2 over STDIN/STDOUT?我可以通过 STDIN/STDOUT 说 HTTP/2 吗?
【发布时间】:2019-02-28 13:51:03
【问题描述】:

我可以通过 STDIN/STDOUT 使用 HTTP/2 吗?如果是这样,我该怎么做,有什么限制?

【问题讨论】:

  • 你为什么要这样做?
  • @BarryPollard 使用 HTTP 与 Windows 上的本地程序通信,该程序在 Windows 10 之前没有 Unix 套接字
  • 好的,但很好奇为什么你认为 HTTP(尤其是 HTTP/2)会是最好的协议而不是其他东西(任何东西?)?
  • @BarryPollard 因为我想通过单个流代理服务器?有很多可能性——将 Web 应用程序作为桌面应用程序运行的(假设的)想法只是其中之一。另一个是通过 qrexec 代理 Docker 的控制套接字。

标签: http2 nghttp2


【解决方案1】:

严格来说HTTP/2 does by definition require a TCP connection:

HTTP/2 连接是在 TCP 连接 ([TCP]) 之上运行的应用层协议。客户端是 TCP 连接发起者。

HTTP/2 使用与 HTTP/1.1 相同的“http”和“https”URI 方案。 HTTP/2 共享相同的默认端口号:“http”URI 为 80,“https”URI 为 443。因此,处理目标资源 URI(如 http://example.org/foohttps://example.com/bar)请求的实现需要首先发现上游服务器(客户端希望建立连接的直接对等方)是否支持 HTTP/2

话虽如此,您可能可以调整协议以用于任何任意传输(如管道),但据我所知,目前还没有软件可以这样工作。如果确实存在这样的库,我希望在 HTTP/2 库的测试套件中看到它。这是一个网站containing a list of HTTP/2 test applications。其中一个可能具有与您正在寻找的模式相似的模式。

就优点和局限性而言,由于 HTTP/2 并非旨在以这种方式使用,因此我不确定在任何情况下都有多大优势。主要限制是相同的:大多数软件无法使用管道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多