úÎ$ˆ#!     KMiddleware is a component that sits between the server and application. It M can do such tasks as GZIP encoding or response caching. What follows is the J general definition of middleware, though a middleware author should feel  free to modify this. GAs an example of an alternate type for middleware, suppose you write a N function to load up session information. The session information is simply a  string map [(String, String)]0. A logical type signatures for this middleware  might be:  " loadSession :: ([(String, String)] -> Application) -> Application#Here, instead of taking a standard  as its first argument, the M middleware takes a function which consumes the session information as well.  GInformation on the request sent by the client. This abstracts away the + details of the underlying implementation. GExtra path information sent by the client. The meaning varies slightly K depending on backend; in a standalone server setting, this is most likely L all information after the domain name. In a CGI application, this would be B the information following the path to the CGI executable itself. 8 Do not modify this raw value- modify pathInfo instead. CIf no query string was specified, this should be empty. This value  will$ include the leading question mark. ; Do not modify this raw value- modify queryString instead. FGenerally the host requested by the user via the Host request header. J Backends are free to provide alternative values as necessary. This value ' should not be used to construct URLs. CThe listening port that the server received this request on. It is I possible for a server to listen on a non-numeric port (i.e., Unix named ; socket), in which case this value will be arbitrary. Like , 4 this value should not be used in URL construction. .Was this request made over an SSL connection?  The client's host information. :Path info in individual pieces- the url without a hostname/;port and without a query string, split on forward slashes,  Parsed query string information              wai-0.4.3 Network.Wai Middleware ApplicationResponseEnumeratorFilePartfilePartOffsetfilePartByteCountResponseResponseBuilder ResponseFileRequest requestMethod httpVersion rawPathInforawQueryString serverName serverPortrequestHeadersisSecure remoteHostpathInfo queryStringresponseEnumerator responseLBS enumFilePart