📜  Node.js Http2ServerRequest.scheme 方法(1)

📅  最后修改于: 2023-12-03 15:17:54.828000             🧑  作者: Mango

Node.js Http2ServerRequest.scheme 方法

在Node.js中,Http2ServerRequest类是一个表示HTTP/2请求的类, 通过该类可以处理接收到的HTTP/2请求。其中,scheme方法是其中之一。

方法介绍

scheme方法用于获取HTTP/2请求的协议名,一般为https。该方法返回一个字符串,表示请求的协议名。

语法
request.scheme
示例
const http2 = require('http2');
const { readFileSync } = require('fs');

const options = {
  key: readFileSync('localhost-privkey.pem'),
  cert: readFileSync('localhost-cert.pem')
};

const server = http2.createSecureServer(options);

server.on('stream', (stream, headers) => {

  console.log(`Protocol: ${stream.session.originSetFor(headers[':authority']).has('h2') ? 'HTTP2' : 'HTTPS'}`); // 判断请求的协议类型

  console.log(`Scheme: ${stream.request.scheme}`); // 获取请求的协议名

  stream.respond({
    'content-type': 'text/html',
    ':status': 200
  });

  stream.end('<h1>Hello World</h1>');
});

server.listen(443);

上述示例中,在接收到HTTP/2请求时,可以通过scheme方法获取请求的协议名,并打印在控制台上。

输出:
Protocol: HTTPS
Scheme: https
重要提示

scheme方法只适用于HTTP/2请求,不适用于HTTP/1.x的请求。如果需要处理HTTP/1.x的请求,建议使用HttpServerRequest.connection.encrypted属性来判断请求是否加密。