Package io.github.mahmoudimus.http3
package io.github.mahmoudimus.http3
-
ClassDescriptionA decoded field section is larger than the decoder's SETTINGS_MAX_FIELD_SECTION_SIZE (RFC 9114 §4.2.2).One header or trailer field (a name and a value) as QPACK carries it.The HTTP/3 error codes (RFC 9114 §8.1), the QPACK error codes (RFC 9204 §6) and H3_DATAGRAM_ERROR (RFC 9297 §5.2).A violation of HTTP/3 or QPACK by the peer (or a limit it exceeded), with the error code to send back and the scope of the error (RFC 9114 §8).One HTTP/3 frame (RFC 9114 §7.2).CANCEL_PUSH (§7.2.3), on the control stream.DATA (§7.2.1): part of a message's content.GOAWAY (§7.2.6), on the control stream.HEADERS (§7.2.2): a QPACK-encoded field section, decoded with
QpackDecoder.MAX_PUSH_ID (§7.2.7), sent by a client on the control stream.PUSH_PROMISE (§7.2.5): a promised request's QPACK-encoded field section, on a request stream.SETTINGS (§7.2.4), the first frame on each control stream and sent once.A frame of any other type: an extension, or a reserved type (0x1f * N + 0x21) used for greasing.Reads HTTP/3 frames from one QUIC stream's bytes, one call per frame, validating everything that can be checked from a frame on its own (RFC 9114 §7).HTTP/3 frame type codes (RFC 9114 §7.2, §11.2.1).Writes HTTP/3 frames to one QUIC stream.HTTP semantics of HTTP/3 field sections (RFC 9114 §4.2, §4.3): validating decoded field lists intoRequestHeadersandResponseHeaders.The SETTINGS parameters of one endpoint (RFC 9114 §7.2.4).BuildsHttp3Settings, starting from the defaults.The types of unidirectional streams (RFC 9114 §6.2, RFC 9204 §4.2): each such stream starts with its type as a variable-length integer.Checks which frames the peer may send on one stream, and in what order (RFC 9114 §4.1, §6.2.1, §7.2).The kind of stream a validator checks.Which end of the connection this endpoint is.The peer's unidirectional streams (RFC 9114 §6.2, RFC 9204 §4.2): at most one control stream, one QPACK encoder stream and one QPACK decoder stream, and push streams only from a server.Decodes QPACK field sections (RFC 9204) and keeps the dynamic table in step with the peer's encoder.Encodes field sections with QPACK (RFC 9204).QUIC variable-length integers (RFC 9000 §16), which HTTP/3 uses for frame types, lengths, settings, stream types, push IDs and error codes.A validated HTTP/3 request header section: the control data from the pseudo-header fields and the remaining fields, asHttp3Headers.toRequest(long, java.util.List<io.github.mahmoudimus.http3.HeaderField>)produces it.A validated HTTP/3 response header section, asHttp3Headers.toResponse(long, java.util.List<io.github.mahmoudimus.http3.HeaderField>)produces it.