Documentation
¶
Overview ¶
Package h1 implements a zero-copy HTTP/1.1 parser.
Index ¶
Constants ¶
View Source
const MaxHeaderSize = 16 << 20 // 16MB
MaxHeaderSize is the maximum allowed size of HTTP headers in bytes.
Variables ¶
View Source
var ( ErrBufferExhausted = errors.New("buffer exhausted") ErrInvalidRequestLine = errors.New("invalid request line") ErrInvalidHeader = errors.New("invalid header line") ErrMissingHost = errors.New("missing Host header") ErrUnsupportedVersion = errors.New("unsupported HTTP version") ErrHeadersTooLarge = errors.New("headers too large") ErrInvalidContentLength = errors.New("invalid content-length") )
H1 parser sentinel errors.
Functions ¶
This section is empty.
Types ¶
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser is a zero-allocation HTTP/1.x request parser.
func (*Parser) ConsumeBody ¶
ConsumeBody advances the parser position by n bytes.
func (*Parser) GetBody ¶
GetBody returns a zero-copy slice of the request body for the given content length.
func (*Parser) ParseChunkedBody ¶
ParseChunkedBody parses a single chunk from chunked transfer encoding. Returns a zero-copy slice into the parser buffer, bytes consumed, or error. Returns (nil, 0, nil) when more data is needed.
func (*Parser) ParseRequest ¶
ParseRequest parses a complete HTTP/1.x request from the buffer into req.
Click to show internal directories.
Click to hide internal directories.