问题标签 [http3]

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 投票
1 回答
308 浏览

http - HTTP/3 如何处理丢包?

HTTP/2 和 HTTP/3 之间的主要区别之一是从 TCP 切换到 UDP。

据我了解,TCP 通过验证没有数据包丢失来验证数据完整性。再次请求任何丢失的数据包以确保正确接收所有数据。

对于 UDP,没有这样的验证。如果数据包丢失,那就这样吧。

话虽如此,如果我在 HTTP/3 上发出请求并且数据包丢失,是否有一种机制可以确保我获取所有数据,或者我的响应是否存在丢失数据包的风险?

0 投票
1 回答
852 浏览

javascript - 调试 http3 设置

我正在尝试为 http3 设置一个测试环境,只是为了学习。

到目前为止我做了什么:

  • 使用 dns-01 创建了一个真正的让我们加密证书
  • 使用实验性 CUIC 标志编译 node.js
  • 支持 http3 的编译 curl

我创建了一个包含示例内容的脚本:

只是为了未来的读者,这些功能getTLSKeySomehow()可以getTLSCertSomehow()替换为:

network.http.http3.enabled然后我尝试通过在 Firefox 中启用http3 并在about:config. 有了地址https://my.dev.domain.name:1234/,但这不起作用。

使用 curl 不起作用,可能值得注意的是我在 Windows 10 上使用 WSL。每次在 curl 上访问相同的 url 都会超时。只是为了检查我的设置是否正常:我可以验证 Firefox 和 curl 可以通过 http3 完美访问www.google.com 。

当我使用相同的密钥实现第二个 http2 端点时,它可以正常工作,没有任何证书警告。

如何调试我做错了什么?

0 投票
1 回答
1737 浏览

configuration - 如何在 HAProxy 中启用 HTTP/3 (QUIC)?

我发现 HAProxy 2.3 更高版本通过此链接支持 HTTP/3 (QUIC) 。

我想知道如何在 HAProxy 中启用 HTTP/3 (QUIC)。
我在任何地方都找不到与此相关的任何数据。

我已经下载了最新的 HAProxy 源 (v2.4-dev5) 并使用 USE_QUIC=1 构建它。

任何建议都会很棒!
谢谢。

0 投票
1 回答
82 浏览

http - 当 QUIC、HTTP/3 是预期的主要/所有流量时,HTTP 客户端连接池是否仍然有效?

作为现代系统,特别是对于微服务,HTTP 客户端的连接池经常被部署。但是对于 QUIC + TLS1.3,在我看来连接池将毫无用处,因为 QUIC 中支持 0-RTT。

是否有任何 QUIC 专家可以分享有关此主题的更多信息?

0 投票
1 回答
80 浏览

tcp - QUIC/HTTP3 在网络切换时是否受益于 udp?

我们通常知道 QUIC 使用 UDP 作为其传输层。与 TCP 相比,UDP 具有无连接属性。
. 那么我是否可以得出结论,我们可以在wifi和4G手机之间自由切换网络连接?
如果是这样,则切换的成本低于 TCP。TCP 需要 3 次握手来建立连接,而 UDP 不需要它。

0 投票
0 回答
26 浏览

google-app-engine - GAE、HTTP/3 和自定义域的问题

我有一个站点 votebd2.appspot.com 通常由其自定义域 votebd.org 访问。当通过appspot URL而不是通过votebd.org访问时,它通过http/3连接。这对我来说没有意义 - 有人知道如何解决这个问题吗?

0 投票
1 回答
49 浏览

http - 为什么 TCP 选择性 ACK 不能阻止 HTTP/2 中的 HOL 阻塞?

HTTP/3规范指出

因为 HTTP/2 的多路复用的并行特性对 TCP 的丢失恢复机制是不可见的,所以丢失或重新排序的数据包会导致所有活动事务都经历停顿,无论该事务是否直接受到丢失数据包的影响

虽然我在累积 ACK 的背景下理解这一点,但我曾假设选择性 ACK可以防止停顿,因为它们允许

接收方确认正确接收的不连续数据包块

但显然,根据上面 HTTP/3 规范的引用,情况并非如此。那么,我的问题是,为什么即使有不连续的确认,线头阻塞仍然存在?

0 投票
0 回答
247 浏览

http - 如何在Windows10上使用quic协议连接iis

整个过程在 https://answers.microsoft.com/zh-hans/windows/forum/windows_10-hardware/windows10/4e2a1370-30ba-4bf4-a460-98664a0172ef

TLDR:我配置了一个 iis 服务器并将 https 与默认配置绑定,但我无法使用 quic 协议连接到它。我使用的代码是https://github.com/microsoft/msquic 中提供的“示例”工具,具有客户端功能,端口 443。但是当我在目标机器上运行“示例”工具的服务器功能,并使用另一台机器上的客户端功能连接到它时,它可以工作。

问:iis服务器是否默认支持443端口的quic协议,如果不支持如何使用quic连接iis服务器?

0 投票
1 回答
60 浏览

tcp - 客户端和服务器在通信时可以使用不同的拥塞算法吗?

我正在编写一个 http3(在 quic 上运行)库,并且需要由调用者选择不同的拥塞控制算法。我做了一些研究并阅读了这个:

在连接到 Internet 的计算机操作系统的协议栈中实现的算法有多种变体和版本。

我突然注意到,除了一些抽象理论之外,我之前从未想过拥塞控制算法是如何真正工作的(在 tcp 上)。所以这里有一些我不太清楚的问题。

  1. 客户端和服务器在通信时可以使用不同的拥塞算法吗?例如客户端使用 Reno,服务器使用 CUBIC?
  2. 如果是,这是客户端和服务器使用不同算法的任何缺点吗?
  3. 如果不是,服务器和客户端如何协商拥塞控制算法?
0 投票
0 回答
171 浏览

nginx - NGINX epoll_ctl(1, 7) 失败(17:文件存在)

只有当我添加时才会发生:

日志说:

我已经编译了./configure --prefix=/usr/local/nginx --build=quiche-7eb57c4 --with-http_ssl_module --with-http_v2_module --with-http_v3_module --with-openssl=../quiche/deps/boringssl --with-quiche=../quiche --with-debug,并且这只发生在请求正文与请求一起发送时。我该如何解决这个问题?

我在 github 中使用了最新版本的 nginx,并在 github 中使用了最新版本的 quiche。

当在 nginx.conf 中添加时,这似乎消失了proxy_store on,但它开始显示错误,例如