-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP/2 Parser implementation (#309). #1368
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is just an intermediate review - a lot of things unfinished and not fixed since #1338 . Also I didn't dive too deeply into the code though.
1. Changes in HPACK decoder to copy only Huffman-decoded and dynamically indexed headers; 2. Appropriate changes in HPACK-decoder/parser unit-tests.
Corrections as a result of HPACK decoder/encoder/parser unit-tests debugging.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm still in progress for the review. Besides not fixed issues from my previous PR and this PR, there are new issues with the new code which must be fixed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I completely dislike the multiple HTTP header strings processing.
While HTTP/2 usage is still less than HTTP/1.1, it actually means that site owners don't deploy HTTP/2 and just stay on current (old) configurations. Meantime, it seems the most modern web clients do support HTTP/2, so
|
TfwStrs often go in arrays, and there is a 1-byte alignment gap between TfwStr neighbours. `eolen` is always [0,2], 14-bits are enough for hpack index.
# Conflicts: # tempesta_fw/http_parser.c # tempesta_fw/http_sess.c # tempesta_fw/t/unit/test_hpack.c # tempesta_fw/t/unit/test_http_sticky.c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More notes to make the HTTP/2 parser faster, required for #1207.
…ve duplication conflicts
…renct additions of CRLF
Don't switch fsm state on processing frame header, update the fsm state only after the full frame is processed. Otherwise the fsm is triggered twice and fsm closes the connection when a new fragment of frame is expected.
Fix request h2 -> http1.1 conversion
Parse name, colon, LWS, value and RWS of HTTP/1.1-response headers into separate chunks to facilitate the name/value splitting and colon/OWS eviction during HTTP/1.1=>HTTP/2 response transformation.
A few review comment fixes for http2 parser
…ion-h2-cache HTTP/2 implementation: HTTP/2-cache (#309).
@krizhanovsky is out for conference and the PR should be merged before the conference
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Any new issues found in the PR or caused by the PR will be fixed in separate PRs
No description provided.