for h2 make sure it follows http messaging from spec#56
Open
jgautier wants to merge 7 commits into
Open
Conversation
The current code auto-upgrades all SPDY/3 clients to SPDY/3.1 when operating in **plain** mode with **autoSpdy31** set to true. This seems rather restrictive, implying that with autoSpdy31 set to true, the server does not support SPDY/3-only clients. This commit fixes this by only upgrading SPDY/3 clients to SPDY/3.1 when the server receives a WINDOW_UPDATE for stream id 0. This ensures that SPDY/3 clients can proceed uninhibited when operating in **plain** mode, and ensuring that the autoSpdy31 option is only used for SPDY/3.1 clients in **plain** mode, allowing for both SPDY/3 and SPDY/3.1 clients to co-exist on the same server in **plain** mode.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
According to the SPDY spec HEADER frames were allowed to be interleaved with DATA frames but with HTTP/2 it must follow the HTTP semantics lined out here:
https://tools.ietf.org/html/draft-ietf-httpbis-http2-17#section-8
Which basically says:
I ran into this issue when trying to use a node-spdy client against a node v10 server running node's native HTTP/2 server and the server was returning trailers.