问题标签 [http2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12202 浏览

server-push - HTTP 2 将支持服务器推送,这是什么意思?

我已经阅读了很多关于HTTP 2(仍在开发中)的内容,所以我也听说过服务器推送功能,但我的头脑,这并不清楚。

此服务器推送功能是否意味着服务器将能够向客户端发送响应而无需客户端发出请求?就像普通的 TCP 连接一样?还是我错过了重点?

0 投票
3 回答
886 浏览

http - SPDY/HTTP2 是否连接响应?

我有一个关于 SPDY/HTTP2 的问题:通常你将多个 CSS 和 JS 文件连接到一个文件中以保存请求并获得更好的性能。我听说 SPDY/HTTP2 将多个请求组合成一个响应。这是否意味着我不再需要预先连接 CSS 和 JS 文件,因为这是由协议处理的?

换句话说:我可以像使用 HTTP1 一样使用<script source="moduleA.js"></script>和使用 SPDY/ HTTP2 吗?从响应性能的角度来看,这是否相同,但具有单独缓存每个文件的好处,以便我可以更改并保持缓存?<script source="moduleB.js"></script><script source="allScripts.js"></script>moduleB.jsmoduleA.js

0 投票
1 回答
55 浏览

http - HTTP2 草案中使用的首字母缩略词

当我在 http2 草稿中阅读“5.1. Stream States”时,我觉得很难理解“Figure 1: Stream States”,因为我找不到图中使用的首字母缩写词的描述。

我的猜测是:

  • PP:PUSH_PROMISE
  • H:标题
  • ES:END_STREAM
  • R:回应?

他们是对的吗?

附言。上个月我已经向 HTTP 邮件列表提出了这个问题,但还没有得到任何答案。

0 投票
1 回答
10413 浏览

linux - 将 --http2.0 选项与 curl 7.33.0 一起使用会提供不受支持的协议

我正在使用 centos 6.2,我需要在其中一个服务器请求中使用 curl --http2.0,但是在查看http://curl.haxx.se/docs/manpage.html后,我使用的是7.19.6我认为 --http2.0 选项仅支持 curl 7.33.0,所以为了解决这个问题,我按照http://www.linuxfromscratch.org/blfs/view/svn中的步骤安装了 curl 7.33.0 /basicnet/curl.html 安装 curl 后,我尝试使用它,但它仍然给我错误curl(1):unsupported protocol,我使用以下命令检查了我的 curl 版本:curl --version这是给我 :

我需要使用这个 --http2.0 但没有得到任何我能做到的东西?由于安装了 curl 7.19,并且我重新安装了更高版本的 curl,这有什么问题吗?

0 投票
1 回答
1060 浏览

c++ - 使用 Berkeley 套接字进行多路复用

我有一个使用 Berkeley 套接字用 C++ 编写的 Web HTTP/1.1 服务器实现。我正在考虑实现对 HTTP/2.0(或 SPDY)的支持,它允许请求和响应多路复用:

HTTP/2.0 中的二进制帧层支持完整的请求和响应多路复用,允许客户端和服务器将 HTTP 消息分解为独立的帧,交错它们,然后在另一端重新组合它们。

我的问题如下;如何启用 HTTP/2.0(或 SPDY)类型的请求和响应多路复用与使用 Berkeley Socket API 编写的现有 HTTP/1.1 程序?也许前面提到的 HTTP/2.0(或 SPDY)支持的帧复用已经被 TCP/IP 堆栈中的现有机制处理了,或者?

澄清:

我对使用单个连接并行传递多个请求和响应的多路复用部分特别感兴趣,我从规范中不明白这是如何在应用程序级协议中实现的?有任何想法吗?

0 投票
1 回答
264 浏览

wireshark - 为什么 Wireshark 报告我的 HTTP/1.1 连接正在发出 HTTP/2 RESET_STREAM 命令?

我有一个客户端和服务器都使用 HTTP/1.1。在几次 HTTP/1.1 交换之后,Wireshark 识别出一个类型为 RESET_STREAM(来自客户端)的 HTTP2 命令,其错误代码为“未知”。

我怀疑 Wireshark 错误地从我的 HTTP/1.1 连接的二进制数据有效负载中解析了这个 HTTP2“消息”(由 Content-Length 标头控制)。然而,我的 HTTP/1.1 会话在这个特定环境中没有按预期进行,这让我想知道发生了什么?

任何想法或意见将不胜感激。

0 投票
2 回答
1329 浏览

nginx - 检测浏览器中的 HTTP2/SPDY 支持

是否可以从浏览器中检测到浏览器对 HTTP2/SPDY 客户端的支持?

我试图向用户展示他们的浏览器是支持 HTTP2/SPDY 还是会使用传统的非 HTTP2/SPDY HTTPs 协议。

0 投票
1 回答
1656 浏览

curl - 如何在 curl 中使用 HTTP/2 的推送功能?

我一直在寻找使用 HTTP/2 推送功能的方法,以减少发出的 GET 请求的数量和特定客户端-服务器实现中的平均感知延迟。现有的客户端严重依赖使用 curl 来发出 GET 请求,我需要能够重用当前的实现。最新版本的 curl 提供对 HTTP/2 的支持,依赖于底层的 nghttp2 模块。使用现有的 nghttp2 服务器:

nghttp 和 curl 都可以用来获取示例文本文件的内容:

然而,使用 nghttp2 的推送功能,另一个文本文件被推送:

curl 似乎无法处理推送的资源:

实际上,在服务器端,两个打开的流接收到两个重置:

有没有办法将 curl 与 HTTP/2 推送功能一起使用?

0 投票
0 回答
639 浏览

netty - [SPDY][HTTP2] 使用 netty 执行自定义服务器推送

我不知道如何在 netty 下使用 SPDY 和/或 HTTP2 协议执行自定义服务器推送。

例如,我可以这样做:

谢谢!

0 投票
3 回答
3252 浏览

php - 使用 PHP 向客户端发送多个 HTTP 2.0 流

HTTP 2.0 中的多流方法似乎很有趣。我想知道,今天是否可以与 PHP 一起使用?

它可以通过从不同的数据库查询发送不同的站点内容来加速 php 应用程序。

编辑:我的示例是通过在 PHP 中使用多线程同步线程(有很多好的库可以做到这一点)同时获取 2 个或更多站点内容并将其发送(不是程序执行)。