Comments (6)
HTTP2 has been in Node for several years now. Closing this issue from lack of activity and any further HTTP2 discussions would probably belong in their own issue anyway.
from discussions.
It would be great to have fully compliant native HTTP/2 support in Node.js.
My understanding is that Express does not have to deal with the request and response objects at the HTTP protocol level, so as long as the request and response objects are HTTP/2-ready, Express should work just fine.
We might need to add additional methods and properties, though. I haven't though much about them yet.
from discussions.
One of the key questions with moving forward on this is whether or not the HTTP/2 implementation should seek to maintain API compatibility with the existing HTTP module API. For the overwhelming majority of it, it should be fairly easy to ensure API compatibility but there are a few areas where it simply is not practical -- push streams, for instance, and the fact that there's no such thing as a status message in HTTP/2. For the most part, the API would be nearly identical but, as we all know, the devil is in the details and small API changes could lead to significant issues. So I guess the main thing to figure out would be which parts of the API are ok to change, which parts are not, and what is the best process for staging out those changes in the code.
Another point is that while implementing the HTTP/2 support, we could take the opportunity to make necessary improvements on the existing API design in order to make it more efficient, more manageable, and easier to evolve over time.... but, I'd rather not break everything in the process.
from discussions.
i don't mind if it's in node core or not, only that it's part of the node foundation and there's only one. i just don't want to choose between supporting multiple http2 servers.
from discussions.
I did some investigation while attempting to get the node-http2
module working properly with Express. This module managed to keep a very similar API to the core https
module. The main reason Express wouldn't work properly with the module was due to its different inheritance chain for request and response objects compared to the core http/https.
Express messes with the __proto__
of the request and response in order to inject its own api extension methods into the inheritance chain. I saw some commentary indicating this approach was taken (despite being fairly brittle) for performance reasons. I don't have any results to back that up though. The problematic part is that Express assumes the request/response will have a particular __proto__
and replaces it with its own that, in turn defers to the assumed original. In the case of node-http2
this is an incorrect assumption and it breaks.
The other concern that has been raised is less specific to HTTP/2, but interesting nonetheless: that is that there have been naming clashes between new versions of the http/https request and response objects and the additional Express methods. I think this was already discussed somewhere within the http working group, so perhaps a solution already exists for this potential issue.
from discussions.
Beginnings of the nodejs proposal: nodejs/node-eps#38
from discussions.
Related Issues (20)
- Module Format HOT 15
- Types? HOT 3
- How can I update the session with data from the database HOT 1
- Pilot LFX Insights On The Express Project HOT 18
- 2024-03-04 Express TC Meeting
- 2024-03-04 Express TC Meeting HOT 12
- 2024-03-04 Express TC Meeting
- How does the Express LTS strategy apply to modules not shipped directly with `express`? HOT 9
- EFI: Express documentation (expressjs.com website)
- Wayward Packages not under Express umbrella orgs HOT 5
- Workflow to auto close and lock PRs that match the `Update Readme.md` pattern HOT 2
- 2024-03-13 Express TC Meeting HOT 11
- 2024-03-18 Express TC Meeting HOT 7
- 2024-03-20 Express TC Meeting HOT 2
- 2024-03-20 Express TC Meeting HOT 1
- 2024-04-01 Express TC Meeting HOT 5
- Why are s: and hmac necessary in the express session cookie? HOT 2
- 2024-03-27 Express TC Meeting
- 2024-03-27 Express Working Session HOT 2
- 2024-03-27 Express TC Meeting
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from discussions.