eclipse-ee4j / eclipse-ee4j/jersey
Clarification: SETTINGS_MAX_CONCURRENT_STREAMS and STREAM_ID_ERROR
- Dominant language
- Java
- Stars
- 730
- Forks
- 382
- PR merge metrics
- No merged PRs in 30d
Description
The HTTP/2.0 protocol allows a server to limit the client's ability to send multiple streams over the same TCP connection using two ways:
* It tells the client the limit using SETTINGS_MAX_CONCURRENT_STREAMS to prevent the client from exceeding the limit
* It sends to the client STREAM_ID_ERROR when the limit is exceed
As a result, Jersey needs to deal with SETTINGS_MAX_CONCURRENT_STREAMS and STREAM_ID_ERROR. Onfortunately it is not documented publicly *how* Jersey does that. For a better understanding and optimization of HTTP/2 in Jersey it would be beneficial if a member of the Jersey team could briefly outline:
* How can a server application tell Jersey server the limit?
* How does Jersey client react when the calling application exceeds the limit? Will it queue up requests until a slot becomes available, will it open more connections, or will it throw an exception at time of sending the request?
* How does Jersey client notify the calling application about the limit, and about the number of currently available slots?
Contributor guide
Assessment
This issue has not been assessed yet.