node.js 实现http2疑问?

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

最终的结果是:

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

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

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

阅读 4.8k
3 个回答

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

'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');

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏