1、准备工作:安装node
2、安装http2: npm install http2 -g
安装完成后,在安装目录中appData/Roaming>npm>node_modules>http2>example 找到localhost.key和localhost.crt文件,后面需要用到,这个用于生成证书。(在线证书生成地址:https://csr.chinassl.net/)

3、开始创建http2服务

const PORT = 8088;

//const spdy = require('spdy');--这个暂时不用管,spdy是http2的前身。
const http2=require('http2');
const path = require('path');
const fs = require('fs');
const url = require('url'); var options = {
key: fs.readFileSync('./localhost.key'), //读取key
cert: fs.readFileSync('./localhost.crt') //读取crt
}; var http2server = http2.createServer(options,function(request, response) {
response.write("hello world");
});
http2server.listen(8088);

访问https://localhost:8088

检测页面是否使用http2:

 (function(){
// 保证这个方法只在支持loadTimes的chrome浏览器下执行
if(window.chrome && typeof chrome.loadTimes === 'function') {
var loadTimes = window.chrome.loadTimes();
var spdy = loadTimes.wasFetchedViaSpdy;
var info = loadTimes.npnNegotiatedProtocol || loadTimes.connectionInfo;
// 就以 「h2」作为判断标识
if(spdy && /^h2/i.test(info)) {
return console.info('本站点使用了HTTP/2');
}
}
console.warn('本站点没有使用HTTP/2');
})();

最新文章

  1. ActiveX(二)Js 监听 ActiveX中的事件
  2. python中的迭代与递归
  3. dubbo-admin-2.5.3 运行报错: Bean property 'URIType' is not writable or has an invalid 解决方法
  4. java中重载、覆盖和隐藏三者的区别分析
  5. 洛谷P1203 [USACO1.1]坏掉的项链Broken Necklace
  6. 最短路(Dijkstra) POJ 1062 昂贵的聘礼
  7. HTTP协议(转自:小坦克博客)
  8. 美化select的jquery插件
  9. Xamarin Mono 环境搭建
  10. (3)ES6解构赋值-对象篇
  11. JavaScript配合button.onclick()使用总结
  12. leetcode python最长回文子串
  13. How do I install Daydream on my phone?
  14. [转] 对Array.prototype.slice.call()方法的理解
  15. linux命令之kill篇
  16. 基于Nginx+Keepalived的LB服务监控(邮件报警)
  17. 微信小程序swiper制作内容高度不定的tab选项卡
  18. HNA CloudOS | 容器云服务专家
  19. 解题报告:hdu1284 钱币兑换问题
  20. zipkin之brave

热门文章

  1. Marlin固件之—:基础入门与測试
  2. armel、armhf和arm64
  3. 如何在退出Hue后关闭Spark会话
  4. pyspark 连 MongoDB复制集
  5. 在Java中如何编写回调函数,以及回调函数的简单应用
  6. Codeforces Round #326 (Div. 2)
  7. vue-router-h5-history
  8. POJ2955 Brackets —— 区间DP
  9. JQuery验证成功之后,使用ajax提交数据
  10. maven实战(7)-- 设置maven编译器级别