node.js 实现http2疑问?

发布于 2022-09-03 09:00:52 字数 272 浏览 9 评论 0

是这样的。
我本地使用过node-http2模块,也使用过spdy,同时也尝试过npm install http2.

最终的结果是:

chrome浏览器版本:51.0.2704.106 m
node.js:4.4

使用这些模块创建http2请求时,chrome浏览器的检查元素查看protocol(协议)是https,并不是显示的http2.

**所以想请问下:
是不是这些模块实现了功能,但是并不被浏览器认可?
另外求可被浏览器认可的方案。**

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凡尘雨 2022-09-10 09:00:52

考虑下是不是你的代码写的有问题?

可以参考我写的这篇文章:https://segmentfault.com/a/11...

月棠 2022-09-10 09:00:52

已经上线的,供参考,按你处情况改一改:

'use strict';
var http2 = require('http2'),
var server = require('./server');

var options = certificate: {
        key: fs.readFileSync('./SSL/www.key'),
        cert: fs.readFileSync('./SSL/www.crt'),
        //ca: fs.readFileSync('./SSL/root_bundle.crt')    //这个线上环境需要
    };

var app = http2.createServer(options, function (req, res) {
    var _postData = '';
    req.on('data', function (chunk) {
        _postData += chunk;
    }).on('end', function () {
        req.post = _postData;
        // 处理你的请求
        server.handlerRequest(req, res);
    });
}).listen('443', '0.0.0.0', function () {
    console.log('HTTP/2 Server running at https://0.0.0.0');
});

/*
 * http 方式的 redirect
 */
var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(301, { "Location": "https://" + req.headers.host + req.url });
    res.end();
}).listen('80', '0.0.0.0');
南汐寒笙箫 2022-09-10 09:00:52

node版本问题
实践在chrome浏览器常规页面10张图片33个连接的情况下 http2比http1.1(https以及http) 慢一半
http2耗时1秒以上没下过1秒 https只需要 700ms, http 则是600ms。
可能在某些场景会高于https 但http2连最基本的场景 也没发现有很好效果. 反而比https差劲
百度至今还是http1.1 淘宝则主要应用于图片资源 可以节省带宽并发强。实际业务中并没什么用。 慢。。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文