protected void sendHttp2Response(ChannelHandlerContext ctx, int streamId, HttpResponseStatus status, String result) {
        // Send a frame for the response status
        Http2Headers headers = new DefaultHttp2Headers().status(status.codeAsText());
        if (!HttpResponseStatus.OK.equals(status)) {
            headers.set(RemotingConstants.HEAD_RESPONSE_ERROR, "true");
        }
        if (StringUtils.isNotBlank(result)) {
            ByteBuf data = ctx.alloc().buffer();
            data.writeBytes(result.getBytes(RpcConstants.DEFAULT_CHARSET));
            encoder().writeHeaders(ctx, streamId, headers, 0, false, ctx.newPromise());
            encoder().writeData(ctx, streamId, data, 0, true, ctx.newPromise());
        } else {
            encoder().writeHeaders(ctx, streamId, headers, 0, true, ctx.newPromise());
        }
    }
https://http2.github.io/http2-spec/#rfc.section.5.1.1 second paragraph
only when in upgrade h2c mode, 0x01 cannot be selected as a new stream identifier.
some gateway or proxy product, use 0x01 as first normal request's stream id  when
in prior knowleadge mode.
remoting/remoting-http/src/main/java/com/alipay/sofa/rpc/transport/http/Http2ServerChannelHandler.java