titbit-httpc

the extension of titbit for http1 and http2 server

Usage no npm install needed!

<script type="module">
  import titbitHttpc from 'https://cdn.skypack.dev/titbit-httpc';
</script>

README

titbit-httpc

titbit扩展模块,需要配合titbit使用。

此扩展可用于Web服务端同时兼容HTTP/1.1和HTTP/2协议。

titbit不支持同时兼容两种协议,当然这是可以实现的。通过使用Node.js提供的http2模块的兼容API。

因为兼容的是http和https模块的API,所以在titbit框架下,要使用针对HTTP/1.1协议设计的请求上下文。

同时兼容也要做一些判断处理,也就是在请求初始的一些处理上,要多做一些判断并设定一些属性的值。从测试来看,对性能的影响几乎可以忽略。

注意事项

  • 因为http2的服务要基于tls,所以对http1的兼容也需要开启https。

  • 选项中的http2不能为true,否则会使用http2的模块。

  • 扩展初始化会自动开启http2服务并开启兼容选项。

  • 请求上下文和协议版本有关的属性会根据请求的协议动态设定。

  • 请尽可能都保持titbit和titbit-httpc最新版。

使用


'use strict'

const titbit = require('titbit')
const httpc = require('titbit-httpc')

//不能开启http2选项,但是必须要设置证书和密钥。
const app = new titbit({
  debug: true,
  cert : './rsa/localhost.cert',
  key : './rsa/localhost.key'
})

let hc = new httpc()

hc.init(app)

app.get('/', async c => {
  
  console.log(c.method, c.path, c.host, c.headers)

  console.log(c.version, c.major, '    --')

  c.send('ok')

})

app.run(1234)