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 = @present bytes / @absent #f . RequestHost = @present string / @absent #f . # Assertion to handler entity HttpContext = . # HttpResponse protocol. Delivered to the `res` ref in `HttpContext`. # # Use of `processing` is optional, so the flow is either: # # +processing . (status | header)* . chunk* . done? . -processing # # or # # (status | header)* . chunk* . done # # Done triggers completion of the response and retraction of the frame by the peer, whether # `processing` is used or not. In addition, if `processing` is used, its retraction triggers # completion and termination. If `processing` is retracted before `status` is delivered, the # response is considered a 500. # @ HttpResponse = # Assertion - frames the response. / # Remainder are messages. / /
/ / . Chunk = @string string / @bytes bytes . # e.g. text/plain, text/html, application/json MimeType = symbol .