【问题标题】:How to know if a request is performed using HTTP 1.x or HTTP2如何知道请求是使用 HTTP 1.x 还是 HTTP2 执行的
【发布时间】:2019-07-15 16:16:53
【问题描述】:

我想知道 JavaScript 客户端和 Node.js 服务器之间的请求是使用 HTTP1.x 还是 HTTP2 执行的。

我如何知道在 XMLHttpRequest、Chrome 控制台和 Node.js 中使用什么类型的协议?

【问题讨论】:

  • 您是在问如何以编程方式执行此操作或如何观察它?如果稍后,则只需查看开发工具浏览器的网络选项卡并在请求标头中查找HTTP/1.1HTTP/2。你也可以使用curl
  • 是的,如何在浏览器开发工具以及客户端和服务器上以编程方式观察它。
  • 当浏览器(客户端)和服务器都支持 HTTP/2 时,它将用于来自浏览器的所有调用。你不能从你的节点 js 服务器上看出来吗?
  • 我不相信您可以通过编程方式自行确定浏览器对 HTTP/2 的支持。然而,NodeJS 可以获取这些信息,但是如何获取它取决于你是使用 NodeJS 的内置 http 服务器还是使用像 express 这样的库。
  • 查看stackoverflow.com/questions/37829617/… 了解如何使用 express 在 nodeJS 中获取 HTTP 版本。

标签: javascript node.js http google-chrome-devtools http2


【解决方案1】:

标准一:performance.timing.nextHopProtocol

非标准实现:window.chrome.loadTimes().connectionInfo

您可以查看开发工具的网络选项卡,其中 h2 代表 HTTP2,

Protocol 列显示 h2 时,表示资源是使用 HTTP/2 发送的。 Protocol 列默认隐藏。右键单击表头并选择Protocol 以显示它。见Show more information for an example

【讨论】:

    猜你喜欢
    • 2012-01-02
    • 2012-05-08
    • 1970-01-01
    • 2011-08-23
    • 2012-02-27
    • 2011-08-20
    • 2016-04-25
    • 1970-01-01
    • 2012-04-07
    相关资源
    最近更新 更多