version 1 . # Assertion in driver DS # Causes creation of server and route HttpBinding = . # Assertion in driver DS # Describes active server and route HttpService = . # Assertion in driver DS # Describes active listener HttpListener = . HostPattern = @host string / @any #f . PathPattern = [PathPatternElement ...] . PathPatternElement = @label string / @wildcard =_ / @rest =... . MethodPattern = @any #f / @specific @"Lowercase" symbol . # Assertion in driver DS HttpRequest = . Headers = {@"Lowercase" symbol: string ...:...} . QueryValue = @string string / . RequestBody = @absent #f / @present bytes . RequestHost = @absent #f / @present string . # Assertion to handler entity HttpContext = . # HttpResponse protocol. Delivered to the `res` ref in `HttpContext`. # # (status | header)* . chunk* . done # # Done triggers completion of the response and retraction of the frame by the peer. If the # HttpBinding responsible for the request is withdrawn mid-way through a response (i.e. when # chunked transfer is used and at least one chunk has been sent) the request is abruptly # closed; if it is withdrawn at any other moment in the lifetime of the request, a 500 Internal # Server Error is send to the client. # @ HttpResponse = # Messages. / /
/ / . Chunk = @string string / @bytes bytes . # e.g. text/plain, text/html, application/json MimeType = symbol .