QUIC协议请求总是报错”Unsupported Protocol”怎么办?

轩辕含含 阅读 14

我在用fetch发送请求时想用QUIC协议,但总提示”Unsupported Protocol”错误。明明服务器配置了QUIC支持,代码也按照文档改了,但还是不行…

尝试过这样写请求代码:


fetch('https://api.example.com/data', {
  headers: { 'Alt-Svc': 'h3=":443"' },
  quicEnabled: true // 这个参数是不是有问题?
})
.then(response => response.json())
.catch(err => console.error('Error:', err));

Chrome开发者工具里看到连接还是走的TLS,没有启用QUIC。查了网络设置也没发现相关限制,是不是需要额外配置服务器参数?或者我的代码写法根本不对?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
公孙欣龙
fetch API本身不支持直接指定QUIC协议,那个quicEnabled参数根本没用。应该能用的是你需要通过环境变量或者启动参数来启用QUIC,比如在Chrome里要加--enable-quic --quic-version=h3-29这些参数启动。服务端也得确保正确配置了QUIC支持,代码里不用特别处理。

const https = require('https')

https.get({
hostname: 'api.example.com',
port: 443,
path: '/data',
ALPNProtocols: ['h3'] // 强制指定使用HTTP/3
}, res => {
console.log(res.httpVersion) // 应该显示3
})


对了,记得确认下服务器防火墙和网络设备是不是限制了UDP流量,QUIC是走UDP的。
点赞 3
2026-02-14 23:34