úÎ!¤ =     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. CIf no query string was specified, this should be empty. This value  will$ include the leading question mark. 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. 3Path info, broken down into individual components.  Parsed query string information              wai-0.4.0 Network.Wai Middleware ApplicationResponseEnumeratorFilePartfilePartOffsetfilePartByteCountResponseResponseBuilder ResponseFileRequest requestMethod httpVersion rawPathInforawQueryString serverName serverPortrequestHeadersisSecure remoteHostpathInfo queryStringresponseEnumerator responseLBS enumFilePart