镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

HTTP2 #1168

Closed
Closed

Description

@benjamingr

Hey, there are a lot of open issues around http2: https://github.com/nodejs/node/issues?q=is%3Aissue+is%3Aopen+label%3Ahttp2+

A lot of them without comment and without appropriate triage.

It would be great if someone from the TSC could take initiative and see how we can improve the support of the HTTP2 module (either by getting collaborators organized in tackling these issues, asking for help or directly).

The TSC can decide to do anything else but I feel like it's an area that could use more attention.

@nodejs/tsc

Activity

  1. mhdawson commented on Feb 18, 2022

    @mhdawson
    Member

    In https://github.com/nodejs/node/blob/master/doc/contributing/maintaining-http.md
    we say that HTTP 2 is in “maintenance mode” for both protocol and APIs. I assume most of these issues are functional problems? If so then the list is good, otherwise then triming down the list in line with maintenance mode might make sense.

    In the discussion in the mini-summit the challenge seemed to be that there was limited uptake of HTTP2 which led to limited interest on working on it. Those most active on the http front seem to be working on the undici side of things.

    I'll tag for thee agenda to see what the other TSC member think.

  2. Trott commented on Feb 19, 2022

    @Trott
    Member

    @nodejs/http2

  3. mcollina commented on Feb 19, 2022

    @mcollina
    SponsorMember

    Unfortunately there are not many users of HTTP/2 in Node.js and not many that would like to step in and maintain it. A few things that might help is to do a call for maintainers, i.e. if you are a company that is using HTTP/2 and it is critical to you, you should help maintain it.

  4. mhdawson commented on Feb 23, 2022

    @mhdawson
    Member

    We discussed this in the TSC meeting today. HTTP2 usage is generally low because proxies like nginx don't proxy HTTP2 and don't plan to (they do plan to proxy HTTP3 though). There is some important usage like GRPC but overall all not critical enough for the future of Node.js to motivate existing collaborators to further improve/fix the rough edges. The project would welcome contributions/PRs to help do that at the TSC level we don't see a path to prioritize that.

  5. mhdawson commented on Feb 23, 2022

    @mhdawson
    Member

    @benjamingr if you know of people that might be interested in helping on that from we might use this issue to discuss how to get them involved, otherwise I'm thinking we can probably close it out.

  6. murgatroid99 commented on Feb 24, 2022

    @murgatroid99

    I am the author/maintainer of gRPC in Node, so I have some interest here. I am particularly curious about this statement:

    HTTP2 usage is generally low because proxies like nginx don't proxy HTTP2 and don't plan to (they do plan to proxy HTTP3 though)

    The documentation I can find seems to indicate that nginx has HTTP2 support. Can you share more information about what support or functionality is missing in nginx and other proxies that is reducing adoption of HTTP2?

  7. mcollina commented on Feb 24, 2022

    @mcollina
    SponsorMember

    @murgatroid99 I don't think this is a forum or a venue to discuss what features NGINX is lacking - NGINX Open Source has supported HTTP/2 for a few years now. What we see on our end is a lack of interest in deploying HTTP/2 with Node.js servers. We can possibly investigate why... but promoting HTTP/2 is not really Node.js goal.

    All the production use cases that the collaborators work on are HTTP/1.1 based with the exception of GRPC. Most companies are leaving HTTP/2 at the load balancer and just use HTTP/1.1 after that: they see HTTP/2 as a infrastructure-specific concern, not something they have to deal with in their APIs.

    I don't know if the current HTTP/2 implementation is serving GRPC well enough or if there are bugs that are affecting you. Supporting GRPC is important for me and likely for a lot of others that have it in production. As you can imagine, supporting the http2 to be able to run GRPC natively vs as a generic API for building servers is quite different.

    A lot of the problems are in the the "compatibility api" that some of the higher-level frameworks are using. That design was probably not one of my finest.

  8. benjamingr commented on Feb 24, 2022

    @benjamingr
    MemberAuthor

    @benjamingr if you know of people that might be interested in helping on that from we might use this issue to discuss how to get them involved, otherwise I'm thinking we can probably close it out.

    I am happy to ping people about this though I doubt people without a lot of prior experience will be very effective unless someone with experience in that area can mentor them.

  9. murgatroid99 commented on Feb 24, 2022

    @murgatroid99

    I don't know if the current HTTP/2 implementation is serving GRPC well enough or if there are bugs that are affecting you.

    There are some bugs in the HTTP/2 implementation that have been impacting gRPC for a while, and the lack of interaction with issues described at the beginning of this thread is a persistent pain point for us.

  10. mcollina commented on Feb 24, 2022

    @mcollina
    SponsorMember

    There are some bugs in the HTTP/2 implementation that have been impacting gRPC for a while, and the lack of interaction with issues described at the beginning of this thread is a persistent pain point for us.

    Could you list them here?

  11. murgatroid99 commented on Feb 24, 2022

    @murgatroid99
  12. mcollina commented on Mar 7, 2022

    @mcollina
    SponsorMember

    @murgatroid99 I think we have handled all the outstanding issues for grpc. In case you have issues that are stuck let us know.

  13. murgatroid99 commented on Mar 7, 2022

    @murgatroid99
  14. RafaelGSS commented on Mar 7, 2022

    @RafaelGSS
  15. boenrobot commented on Mar 31, 2022

    @boenrobot

    Casual Nodejs user here...

    The documentation I can find seems to indicate that nginx has HTTP2 support. Can you share more information about what support or functionality is missing in nginx and other proxies that is reducing adoption of HTTP2?

    See this:
    https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version

    I've never used HTTP2 with NodeJS due to the above. I don't expose Nodejs directly to the web, but through Nginx. I know I could expose it directly, but I don't, for the sake of delivering static files faster, and to enable myself to potentially load balance between several nodejs instances. Admittedly, I don't have a project that's big enough to have warranted multiple instances, but that's beside the point.

    don't proxy HTTP2 and don't plan to (they do plan to proxy HTTP3 though).

    That's news to me, and I can't seem to find any confirmation on even planned support for the proxy module supporting HTTP3. All I can find is plans to support HTTP3 in general, in much the same way HTTP2 is supported currently. That is, you'd still have Nginx making HTTP 1.1 connections to NodeJS in response to an HTTP3 request.

  16. mhdawson commented on Jun 28, 2022

    @mhdawson
    Member

    @benjamingr I think the discussion that is going to take place on this issue has taken place. Would it be ok to close the issue?

  17. benjamingr commented on Jun 29, 2022

    @benjamingr
    MemberAuthor

    @mhdawson sure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions