Skip to content

Instantly share code, notes, and snippets.

@kysnm
Created January 24, 2015 10:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kysnm/c68ac56da47235fc8789 to your computer and use it in GitHub Desktop.
Save kysnm/c68ac56da47235fc8789 to your computer and use it in GitHub Desktop.
% h2spec -p 8080 -h `boot2docker ip`
The VM's Host only interface IP address is:
3.5. HTTP/2 Connection Preface
✓ Sends invalid connection preface
4.2. Frame Size
✓ Sends too small size frame
✓ Sends too large size frame
✓ Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE
4.3. Header Compression and Decompression
✓ Sends invalid header block fragment
5.1. Stream States
5.1.1. Stream Identifiers
✓ Sends even-numbered stream identifier
× Sends stream identifier that is numerically smaller than previous
- The endpoint MUST respond with a connection error of type PROTOCOL_ERROR.
5.4. Error Handling
5.4.1. Connection Error Handling
✓ Receives a GOAWAY frame
6.1. DATA
✓ Sends a DATA frame with 0x0 stream identifier
× Sends a DATA frame on the stream that is not opend
- The endpoint MUST respond with a stream error of type STREAM_CLOSED.
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
6.3. PRIORITY
✓ Sends a PRIORITY frame with 0x0 stream identifier
✓ 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
6.5. SETTINGS
✓ Sends a SETTINGS frame
✓ Sends a SETTINGS frame that is not a zero-length with ACK flag
✓ 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
✓ Sends the value above the maximum allowed frame size
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 with an flow control window increment of 0
✓ Sends a WINDOW_UPDATE frame with an 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.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
✓ Sends multiple CONTINUATION frames
✓ Sends a CONTINUATION frame followed by any frame other than CONTINUATION
✓ Sends a CONTINUATION frame followed by a frame on a different stream
✓ Sends a CONTINUATION frame with the stream identifier that is 0x0
✓ Sends a CONTINUATION frame after the frame other than HEADERS, PUSH_PROMISE or CONTINUATION
8.1. HTTP Request/Response Exchange
8.1.2. HTTP Header Fields
× Sends a HEADERS frame that contains the header field name in uppercase letters
- the endpoint MUST respond with a stream error of type PROTOCOL_ERROR.
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.
× Sends a HEADERS frame that contains the invalid pseudo-header field
- the endpoint MUST respond with a stream error of type PROTOCOL_ERROR.
× 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.
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.
× 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.
8.1.2.3. Request Pseudo-Header Fields
× Sends a HEADERS frame that is omitted mandatory pseudo-header fields
- the endpoint MUST respond with a stream error of type PROTOCOL_ERROR.
8.1.2.6. Malformed Requests and Responses
× Sends a HEADERS frame that contains invalid "content-length" header field
- the endpoint MUST respond with a stream error of type PROTOCOL_ERROR.
8.2. Server Push
✓ Sends a PUSH_PROMISE frame
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment