6. Notable Differences with HTTP Protocol Messages
This format differs from HTTP message encodings in several key ways:
-
No HTTP version - The binary format does not include an HTTP version identifier
-
Field names lowercase - All field names MUST be lowercase (following HTTP/2 convention)
-
No transfer encoding - Content is directly encoded without Transfer-Encoding header
-
Status code as integer - Response status codes are variable-length integers, not strings
-
No reason phrase - Responses do not include a reason phrase with the status code
-
Pseudo-headers as control data - HTTP/2-style pseudo-headers become control data fields
-
Binary encoding - All lengths and values use QUIC variable-length integer encoding
-
No chunked encoding - Indeterminate-length mode replaces chunked transfer encoding
These differences enable more efficient encoding and processing while preserving HTTP message semantics.