结合nodejs写框架关于http2个人理解(一)

http2是http协议的一个版本,http版本有1.0、1.一、2javascript

网络

OSI 七层模型

小意见 吧网络这一块学一下 仍是比较有用的 linux namespace---dockerhtml

应用层 这个才是http

网络服务与最终用户的一个接口。 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP前端

表示层 TSL成

数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层) 格式有,JPEG、ASCll、DECOIC、加密格式等java

会话层

创建、管理、终止会话。(在五层模型里面已经合并到了应用层) 对应主机进程,指本地主机与远程主机正在进行的会话node

传输层 TCP三次握手

定义传输数据的协议端口号,以及流控和差错校验。 协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层linux

http

它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求一般是由像浏览器这样的接受方发起的。一个完整的Web文档一般是由不一样的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。docker

http1.0的问题

1.规定浏览器与服务器只保持短暂的链接,浏览器的每次请求都须要与服务器创建一个TCP链接。
2.没有host字段typescript

http1.1解决了部分1.0的问题

1.支持持久链接
2.增长host字段后端

http2

二进制 HTTP帧 不是 是1那种文本了
全部的帧都以一个9字节的报头开始, 后接变长的载荷
Streamapi

nodejs v10这个版本http2变成稳定版本
舒适提示 postman paw 这类型工具可能须要2020年才能支持http2

const http2 = require('http2');
const fs = require('fs');

const server = http2.createSecureServer({
  key: fs.readFileSync('localhost-privkey.pem'),
  cert: fs.readFileSync('localhost-cert.pem')
});
server.on('error', (err) => console.error(err));

server.on('stream', (stream, headers) => {
  // stream is a Duplex
  stream.respond({
    'content-type': 'text/html',
    ':status': 200
  });
  stream.end('<h1>Hello World</h1>');
});

server.listen(8443);
复制代码

和 http不一样的是http2 改了大量的api可是保留1的支持

我写的框架msnote---koa http2 为例

import http2 from 'http2';
import querystring from 'querystring';

const request = (obj: http2.IncomingHttpHeaders) => {
  return new Proxy(obj, {
    get(target, key, receiver) {
      switch (key) {
        case 'header':
          return target;
        case 'method':
          return target[':method'];
        case 'url':
          return target[':path'];
        case 'query':
          if(target[':path'])
          return querystring.parse(target[':path']);
        default:
          return target;
      }
    },
  });
};

export default request;
复制代码

大量的api 修改 不兼容koa 应为没通过测试 没法生成api 文档暂时仍是保密开发中

关于我

放一下qq群 群内 有伪音,拳击,射击,射箭,技术有 前端 后端 运维 的一个集合

qq群:895978371

http://localhost:5000/

相关文章
相关标签/搜索