The ALTSVC frame, which is defined in RFC 7383 <https://tools.ietf.org/html/rfc7838#section-4>
_.
CANCEL
COMPRESSION_ERROR
CONNECT_ERROR
The CONTINUATION frame. This frame type won’t be passed to any
callbacks because the library processes this frame type and its
preceding HEADERS/PUSH_PROMISE as a single frame.
The DATA frame.
Indicates EOF was sensed.
No flag set.
Indicates that application will send complete DATA frame in
:type:nghttp2_send_data_callback
.
Indicates that END_STREAM flag must not be set even if
NGHTTP2_DATA_FLAG_EOF is set. Usually this flag is used to send
trailer fields with nghttp2_submit_request()
or
nghttp2_submit_response()
.
ENHANCE_YOUR_CALM
Invalid client magic (see :macro:NGHTTP2_CLIENT_MAGIC
) was
received and further processing is not possible.
Out of buffer space.
The user callback function failed. This is a fatal error.
Indicates that a processing was canceled.
DATA or HEADERS frame for a given stream has been already
submitted and has not been fully processed yet. Application
should wait for the transmission of the previously submitted
frame before submitting another.
Used as a return value from
:func:nghttp2_data_source_read_callback
to indicate that data
transfer is postponed. See
:func:nghttp2_data_source_read_callback
for details.
Another DATA frame has already been deferred.
The peer performed a shutdown on the connection.
The errors < :enum:NGHTTP2_ERR_FATAL
mean that the library is
under unexpected condition and processing was terminated (e.g.,
out of memory). If application receives this error code, it must
stop using that :type:nghttp2_session
object and only allowed
operation for that object is deallocate it using
nghttp2_session_del()
.
Possible flooding by peer was detected in this HTTP/2 session.
Flooding is measured by how many PING and SETTINGS frames with
ACK flag set are queued for transmission. These frames are
response for the peer initiated frames, and peer can cause memory
exhaustion on server side to send these frames forever and does
not read network.
Flow control error
The length of the frame is invalid, either too large or too small.
GOAWAY has already been sent.
Header block inflate/deflate error.
Invalid HTTP header field was received and stream is going to be
closed.
Violation in HTTP messaging rule.
Insufficient buffer size given to function.
Unexpected internal error, but recovered.
Invalid argument passed.
The frame is invalid.
The received frame contains the invalid header block (e.g., There
are duplicate header names; or the header names are not encoded
in US-ASCII character set and not lower cased; or the header name
is zero-length string; or the header value contains multiple
in-sequence NUL bytes).
Indicates that the context is not suitable to perform the
requested operation.
The stream ID is invalid.
The state of the stream is not valid (e.g., DATA cannot be sent
to the stream if response HEADERS has not been sent).
Out of memory. This is a fatal error.
Callback was paused by the application
General protocol error
The server push is disabled.
Stream was refused.
The current session is closing due to a connection error or
nghttp2_session_terminate_session()
is called.
When a local endpoint expects to receive SETTINGS frame, it
receives an other type of frame.
Starting new stream is not allowed (e.g., GOAWAY has been sent
and/or received).
The stream is already closed; or the stream ID is invalid.
RST_STREAM has been added to the outbound queue. The stream is
in closing state.
Stream ID has reached the maximum value. Therefore no stream ID
is available.
The transmission is not allowed for this stream (e.g., a frame
with END_STREAM flag set has already sent).
The user callback function failed due to the temporal error.
There are too many in-flight SETTING frame and no more
transmission of SETTINGS is allowed.
The specified protocol version is not supported.
Used as a return value from :type:nghttp2_send_callback
,
:type:nghttp2_recv_callback
and
:type:nghttp2_send_data_callback
to indicate that the operation
would block.
The ACK flag.
The END_HEADERS flag.
The END_STREAM flag.
No flag set.
The PADDED flag.
The PRIORITY flag.
FLOW_CONTROL_ERROR
FRAME_SIZE_ERROR
The GOAWAY frame.
The HEADERS frame which does not apply for the above categories,
which is analogous to HEADERS in SPDY. If non-final response
(e.g., status 1xx) is used, final response HEADERS frame will be
categorized here.
The HEADERS frame is the first headers sent against reserved
stream.
The HEADERS frame is opening new stream, which is analogous to
SYN_STREAM in SPDY.
The HEADERS frame is the first response headers, which is
analogous to SYN_REPLY in SPDY.
Indicates a header was emitted.
Indicates all headers were inflated.
No flag set.
The HEADERS frame.
HTTP_1_1_REQUIRED
INADEQUATE_SECURITY
INTERNAL_ERROR
No errors.
No flag set.
This flag is set solely by application. If this flag is set, the
library does not make a copy of header field name. This could
improve performance.
This flag is set solely by application. If this flag is set, the
library does not make a copy of header field value. This could
improve performance.
Indicates that this name/value pair must not be indexed (“Literal
Header Field never Indexed” representation must be used in HPACK
encoding). Other implementation calls this bit as “sensitive”.
The ORIGIN frame, which is defined by RFC 8336 <https://tools.ietf.org/html/rfc8336>
_.
The PING frame.
The PRIORITY frame.
PROTOCOL_ERROR
The PUSH_PROMISE frame.
REFUSED_STREAM
The RST_STREAM frame.
The SETTINGS frame.
SETTINGS_ENABLE_PUSH
SETTINGS_HEADER_TABLE_SIZE
SETTINGS_INITIAL_WINDOW_SIZE
SETTINGS_MAX_CONCURRENT_STREAMS
SETTINGS_MAX_FRAME_SIZE
SETTINGS_MAX_HEADER_LIST_SIZE
SETTINGS_TIMEOUT
STREAM_CLOSED
closed state.
half closed (local) state.
half closed (remote) state.
idle state.
open state.
reserved (local) state.
reserved (remote) state.
The WINDOW_UPDATE frame.