HTTP

HTTP :: # (opaque)

Parsers and syntax types for basic HTTP/1.x requests and responses.

Message bodies are returned as raw bytes. Header names and values are preserved as strings without normalization.

request : Parser(Utf8, Request)

Parse a complete HTTP request line, headers, and remaining body bytes.

response : Parser(Utf8, Response)

Parse a complete HTTP response line, headers, and remaining body bytes.

Method : [Options, Get, Post, Put, Delete, Head, Trace, Connect, Patch]

Supported HTTP request methods.

HttpVersion : { major : U8, minor : U8 }

An HTTP protocol version such as HTTP/1.1.

Header : [Header(Str, Str)]

One HTTP header name and value.

Request : {
    method : Method,
    uri : Str,
    http_version : HttpVersion,
    headers : List(Header),
    body : List(U8),
}

A parsed HTTP request message.

Response : {
    http_version : HttpVersion,
    status_code : U16,
    status : Str,
    headers : List(Header),
    body : List(U8),
}

A parsed HTTP response message.