Created
August 29, 2016 13:17
-
-
Save buchgr/9b8bc81592258008641e20e6d96f61c2 to your computer and use it in GitHub Desktop.
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
Jakobs-MBP-4:bin buchgr$ ./h2spec -p 8080 | |
3.5. HTTP/2 Connection Preface | |
✓ Sends invalid connection preface | |
4.2. Frame Size | |
× Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE | |
- The endpoint MUST send a FRAME_SIZE_ERROR error. | |
Expected: GOAWAY frame (ErrorCode: FRAME_SIZE_ERROR) | |
RST_STREAM frame (ErrorCode: FRAME_SIZE_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 50, Flags: 0, ErrorCode: PROTOCOL_ERROR) | |
4.3. Header Compression and Decompression | |
× Sends invalid header block fragment | |
- The endpoint MUST terminate the connection with a connection error of type COMPRESSION_ERROR. | |
Expected: GOAWAY frame (ErrorCode: COMPRESSION_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
✓ Sends Dynamic Table Size Update (RFC 7541, 6.3) | |
× Encodes Dynamic Table Size Update (RFC 7541, 6.3) after common header fields | |
- The endpoint MUST terminate the connection with a connection error of type COMPRESSION_ERROR. | |
Expected: GOAWAY frame (ErrorCode: COMPRESSION_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
5.1. Stream States | |
✓ idle: Sends a DATA frame | |
✓ idle: Sends a RST_STREAM frame | |
✓ idle: Sends a WINDOW_UPDATE frame | |
✓ idle: Sends a CONTINUATION frame | |
✓ half closed (remote): Sends a DATA frame | |
✓ half closed (remote): Sends a HEADERS frame | |
✓ half closed (remote): Sends a CONTINUATION frame | |
× closed: Sends a CONTINUATION frame | |
- The endpoint MUST treat this as a stream error (Section 5.4.2) of type STREAM_CLOSED. | |
Expected: Stream close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
5.1.1. Stream Identifiers | |
✓ Sends even-numbered stream identifier | |
5.1.2. Stream Concurrency | |
Sends HEADERS frames that causes their advertised concurrent stream limit to be exceeded | |
- Skipped: SETTINGS_MAX_CONCURRENT_STREAMS is unlimited. | |
5.3. Stream Priority | |
5.3.1. Stream Dependencies | |
× Sends HEADERS frame that depend on itself | |
- The endpoint MUST treat this as a stream error of type PROTOCOL_ERROR | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 40, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
✓ Sends PRIORITY frame that depend on itself | |
5.5. Extending HTTP/2 | |
✓ Sends an unknown extension frame | |
× Sends an unknown extension frame in the middle of a header block | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
6.1. DATA | |
× Sends a DATA frame with 0x0 stream identifier | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 66, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
✓ Sends a DATA frame on the stream that is not in "open" or "half-closed (local)" state | |
× Sends a DATA frame with invalid pad length | |
- The endpoint MUST treat this as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: RST_STREAM frame (Length: 4, Flags: 0, ErrorCode: FRAME_SIZE_ERROR) | |
6.2. HEADERS | |
✓ Sends a HEADERS frame followed by any frame other than CONTINUATION | |
✓ Sends a HEADERS frame followed by a frame on a different stream | |
✓ Sends a HEADERS frame with 0x0 stream identifier | |
× Sends a HEADERS frame with invalid pad length | |
- The endpoint MUST treat this as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 53, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
6.3. PRIORITY | |
× Sends a PRIORITY frame with 0x0 stream identifier | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 8, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
✓ Sends a PRIORITY frame with a length other than 5 octets | |
6.4. RST_STREAM | |
✓ Sends a RST_STREAM frame with 0x0 stream identifier | |
✓ Sends a RST_STREAM frame on a idle stream | |
× Sends a RST_STREAM frame with a length other than 4 octets | |
- The endpoint MUST respond with a connection error of type FRAME_SIZE_ERROR. | |
Expected: GOAWAY frame (ErrorCode: FRAME_SIZE_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 177, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
6.5. SETTINGS | |
× Sends a SETTINGS frame | |
- The endpoint MUST sends a SETTINGS frame with ACK. | |
Expected: SETTINGS frame (Flags: 1) | |
Actual: GOAWAY frame (Length: 56, Flags: 0, ErrorCode: PROTOCOL_ERROR) | |
× Sends a SETTINGS frame that is not a zero-length with ACK flag | |
- The endpoint MUST respond with a connection error of type FRAME_SIZE_ERROR. | |
Expected: GOAWAY frame (ErrorCode: FRAME_SIZE_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 54, Flags: 0, ErrorCode: PROTOCOL_ERROR) | |
✓ Sends a SETTINGS frame with the stream identifier that is not 0x0 | |
✓ Sends a SETTINGS frame with a length other than a multiple of 6 octets | |
6.5.2. Defined SETTINGS Parameters | |
✓ SETTINGS_ENABLE_PUSH (0x2): Sends the value other than 0 or 1 | |
✓ SETTINGS_INITIAL_WINDOW_SIZE (0x4): Sends the value above the maximum flow control window size | |
× SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value below the initial value | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 48, Flags: 0, ErrorCode: FRAME_SIZE_ERROR) | |
× SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value above the maximum allowed frame size | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 51, Flags: 0, ErrorCode: FRAME_SIZE_ERROR) | |
6.7. PING | |
✓ Sends a PING frame | |
✓ Sends a PING frame with the stream identifier that is not 0x0 | |
✓ Sends a PING frame with a length field value other than 8 | |
6.8. GOAWAY | |
✓ Sends a GOAWAY frame with the stream identifier that is not 0x0 | |
6.9. WINDOW_UPDATE | |
✓ Sends a WINDOW_UPDATE frame | |
✓ Sends a WINDOW_UPDATE frame with a flow control window increment of 0 | |
✓ Sends a WINDOW_UPDATE frame with a flow control window increment of 0 on a stream | |
✓ Sends a WINDOW_UPDATE frame with a length other than a multiple of 4 octets | |
6.9.1. The Flow Control Window | |
✓ Sends multiple WINDOW_UPDATE frames on a connection increasing the flow control window to above 2^31-1 | |
✓ Sends multiple WINDOW_UPDATE frames on a stream increasing the flow control window to above 2^31-1 | |
6.9.2. Initial Flow Control Window Size | |
✓ Sends a SETTINGS_INITIAL_WINDOW_SIZE settings with an exceeded maximum window size value | |
6.10. CONTINUATION | |
× Sends a CONTINUATION frame | |
- The endpoint must accept the frame. | |
Expected: HEADERS frame | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends multiple CONTINUATION frames | |
- The endpoint must accept the frames. | |
Expected: HEADERS frame | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends a CONTINUATION frame followed by any frame other than CONTINUATION | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends a CONTINUATION frame followed by a frame on a different stream | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends a CONTINUATION frame with the stream identifier that is 0x0 | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
✓ Sends a CONTINUATION frame after the frame other than HEADERS, PUSH_PROMISE or CONTINUATION | |
8.1. HTTP Request/Response Exchange | |
× Sends a HEADERS frame as HEAD request | |
- The endpoint should respond with no DATA frame or empty DATA frame. | |
Expected: HEADERS frame (Flags: 1) | |
DATA frame (Length: 0, Flags: 1) | |
Actual: DATA frame (Length: 24, Flags: 1) | |
✓ Sends a HEADERS frame containing trailer part | |
× Sends a second HEADERS frame without the END_STREAM flag | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: Test timeout | |
8.1.2. HTTP Header Fields | |
✓ Sends a HEADERS frame that contains the header field name in uppercase letters | |
8.1.2.1. Pseudo-Header Fields | |
× Sends a HEADERS frame that contains the pseudo-header field defined for response | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame that contains the invalid pseudo-header field | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame that contains a pseudo-header field that appears in a header block after a regular header field | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
8.1.2.2. Connection-Specific Header Fields | |
× Sends a HEADERS frame that contains the connection-specific header field | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame that contains the TE header field that contain any value other than "trailers" | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
8.1.2.3. Request Pseudo-Header Fields | |
× Sends a HEADERS frame that omits mandatory pseudo-header fields | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame containing more than one pseudo-header fields with the same name | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
8.1.2.6. Malformed Requests and Responses | |
× Sends a HEADERS frame that contains the "content-length" header field which does not equal the sum of the DATA frame payload lengths | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 4, Flags: 1) | |
× Sends a HEADERS frame that contains the "content-length" header field which does not equal the sum of the multiple DATA frame payload lengths | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 4, Flags: 1) | |
8.2. Server Push | |
× Sends a PUSH_PROMISE frame | |
- The endpoint MUST treat the receipt of a PUSH_PROMISE frame as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: Test timeout | |
70 tests, 37 passed, 1 skipped, 32 failed | |
=============================================================================== | |
Failed tests | |
=============================================================================== | |
4.2. Frame Size | |
× Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE | |
- The endpoint MUST send a FRAME_SIZE_ERROR error. | |
Expected: GOAWAY frame (ErrorCode: FRAME_SIZE_ERROR) | |
RST_STREAM frame (ErrorCode: FRAME_SIZE_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 50, Flags: 0, ErrorCode: PROTOCOL_ERROR) | |
4.3. Header Compression and Decompression | |
× Sends invalid header block fragment | |
- The endpoint MUST terminate the connection with a connection error of type COMPRESSION_ERROR. | |
Expected: GOAWAY frame (ErrorCode: COMPRESSION_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Encodes Dynamic Table Size Update (RFC 7541, 6.3) after common header fields | |
- The endpoint MUST terminate the connection with a connection error of type COMPRESSION_ERROR. | |
Expected: GOAWAY frame (ErrorCode: COMPRESSION_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
5.1. Stream States | |
× closed: Sends a CONTINUATION frame | |
- The endpoint MUST treat this as a stream error (Section 5.4.2) of type STREAM_CLOSED. | |
Expected: Stream close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
5.3. Stream Priority | |
5.3.1. Stream Dependencies | |
× Sends HEADERS frame that depend on itself | |
- The endpoint MUST treat this as a stream error of type PROTOCOL_ERROR | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 40, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
5.5. Extending HTTP/2 | |
× Sends an unknown extension frame in the middle of a header block | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
6.1. DATA | |
× Sends a DATA frame with 0x0 stream identifier | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 66, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
× Sends a DATA frame with invalid pad length | |
- The endpoint MUST treat this as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: RST_STREAM frame (Length: 4, Flags: 0, ErrorCode: FRAME_SIZE_ERROR) | |
6.2. HEADERS | |
× Sends a HEADERS frame with invalid pad length | |
- The endpoint MUST treat this as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 53, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
6.3. PRIORITY | |
× Sends a PRIORITY frame with 0x0 stream identifier | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 8, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
6.4. RST_STREAM | |
× Sends a RST_STREAM frame with a length other than 4 octets | |
- The endpoint MUST respond with a connection error of type FRAME_SIZE_ERROR. | |
Expected: GOAWAY frame (ErrorCode: FRAME_SIZE_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 177, Flags: 0, ErrorCode: INTERNAL_ERROR) | |
6.5. SETTINGS | |
× Sends a SETTINGS frame | |
- The endpoint MUST sends a SETTINGS frame with ACK. | |
Expected: SETTINGS frame (Flags: 1) | |
Actual: GOAWAY frame (Length: 56, Flags: 0, ErrorCode: PROTOCOL_ERROR) | |
× Sends a SETTINGS frame that is not a zero-length with ACK flag | |
- The endpoint MUST respond with a connection error of type FRAME_SIZE_ERROR. | |
Expected: GOAWAY frame (ErrorCode: FRAME_SIZE_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 54, Flags: 0, ErrorCode: PROTOCOL_ERROR) | |
6.5.2. Defined SETTINGS Parameters | |
× SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value below the initial value | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 48, Flags: 0, ErrorCode: FRAME_SIZE_ERROR) | |
× SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value above the maximum allowed frame size | |
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 51, Flags: 0, ErrorCode: FRAME_SIZE_ERROR) | |
6.10. CONTINUATION | |
× Sends a CONTINUATION frame | |
- The endpoint must accept the frame. | |
Expected: HEADERS frame | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends multiple CONTINUATION frames | |
- The endpoint must accept the frames. | |
Expected: HEADERS frame | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends a CONTINUATION frame followed by any frame other than CONTINUATION | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends a CONTINUATION frame followed by a frame on a different stream | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
× Sends a CONTINUATION frame with the stream identifier that is 0x0 | |
- The endpoint MUST treat as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: GOAWAY frame (Length: 52, Flags: 0, ErrorCode: ENHANCE_YOUR_CALM) | |
8.1. HTTP Request/Response Exchange | |
× Sends a HEADERS frame as HEAD request | |
- The endpoint should respond with no DATA frame or empty DATA frame. | |
Expected: HEADERS frame (Flags: 1) | |
DATA frame (Length: 0, Flags: 1) | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a second HEADERS frame without the END_STREAM flag | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: Test timeout | |
8.1.2. HTTP Header Fields | |
8.1.2.1. Pseudo-Header Fields | |
× Sends a HEADERS frame that contains the pseudo-header field defined for response | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame that contains the invalid pseudo-header field | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame that contains a pseudo-header field that appears in a header block after a regular header field | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
8.1.2.2. Connection-Specific Header Fields | |
× Sends a HEADERS frame that contains the connection-specific header field | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame that contains the TE header field that contain any value other than "trailers" | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
8.1.2.3. Request Pseudo-Header Fields | |
× Sends a HEADERS frame that omits mandatory pseudo-header fields | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
× Sends a HEADERS frame containing more than one pseudo-header fields with the same name | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 24, Flags: 1) | |
8.1.2.6. Malformed Requests and Responses | |
× Sends a HEADERS frame that contains the "content-length" header field which does not equal the sum of the DATA frame payload lengths | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 4, Flags: 1) | |
× Sends a HEADERS frame that contains the "content-length" header field which does not equal the sum of the multiple DATA frame payload lengths | |
- The endpoint MUST respond with a stream error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
RST_STREAM frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: DATA frame (Length: 4, Flags: 1) | |
8.2. Server Push | |
× Sends a PUSH_PROMISE frame | |
- The endpoint MUST treat the receipt of a PUSH_PROMISE frame as a connection error of type PROTOCOL_ERROR. | |
Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR) | |
Connection close | |
Actual: Test timeout | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment