-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generic HTTP types for Haskell (for both client and server code). -- -- Generic HTTP types for Haskell (for both client and server code). @package http-types @version 0.6.9 module Network.HTTP.Types type Ascii = ByteString -- | HTTP method (flat string type). type Method = Ascii -- | HTTP Method constants. methodGet, methodOptions, methodConnect, methodTrace, methodDelete, methodPut, methodHead, methodPost :: Method -- | HTTP standard method (as defined by RFC 2616). data StdMethod GET :: StdMethod POST :: StdMethod HEAD :: StdMethod PUT :: StdMethod DELETE :: StdMethod TRACE :: StdMethod CONNECT :: StdMethod OPTIONS :: StdMethod -- | Convert a method ByteString to a StdMethod if -- possible. parseMethod :: Method -> Either Ascii StdMethod -- | Convert an algebraic method to a ByteString. renderMethod :: Either Ascii StdMethod -> Method -- | Convert a StdMethod to a ByteString. renderStdMethod :: StdMethod -> Method -- | HTTP Version. -- -- Note that the Show instance is intended merely for debugging. data HttpVersion HttpVersion :: !Int -> !Int -> HttpVersion httpMajor :: HttpVersion -> !Int httpMinor :: HttpVersion -> !Int -- | HTTP 0.9 http09 :: HttpVersion -- | HTTP 1.0 http10 :: HttpVersion -- | HTTP 1.1 http11 :: HttpVersion -- | HTTP Status. -- -- Only the statusCode is used for comparisons. -- -- Note that the Show instance is only for debugging. data Status Status :: Int -> Ascii -> Status statusCode :: Status -> Int statusMessage :: Status -> Ascii -- | Continue 100 status100 :: Status -- | Continue 100 continue100 :: Status -- | Switching Protocols 101 status101 :: Status -- | Switching Protocols 101 switchingProtocols101 :: Status -- | OK 200 status200 :: Status -- | OK 200 ok200 :: Status -- | Created 201 status201 :: Status -- | Created 201 created201 :: Status -- | Accepted 202 status202 :: Status -- | Accepted 202 accepted202 :: Status -- | Non-Authoritative Information 203 status203 :: Status -- | Non-Authoritative Information 203 nonAuthoritative203 :: Status -- | No Content 204 status204 :: Status -- | No Content 204 noContent204 :: Status -- | Reset Content 205 status205 :: Status -- | Reset Content 205 resetContent205 :: Status -- | Partial Content 206 status206 :: Status -- | Partial Content 206 partialContent206 :: Status -- | Multiple Choices 300 status300 :: Status -- | Multiple Choices 300 multipleChoices300 :: Status -- | Moved Permanently 301 status301 :: Status -- | Moved Permanently 301 movedPermanently301 :: Status -- | Found 302 status302 :: Status -- | Found 302 found302 :: Status -- | See Other 303 status303 :: Status -- | See Other 303 seeOther303 :: Status -- | Not Modified 304 status304 :: Status -- | Not Modified 304 notModified304 :: Status -- | Use Proxy 305 status305 :: Status -- | Use Proxy 305 useProxy305 :: Status -- | Temporary Redirect 307 status307 :: Status -- | Temporary Redirect 307 temporaryRedirect307 :: Status -- | Bad Request 400 status400 :: Status -- | Bad Request 400 badRequest400 :: Status -- | Unauthorized 401 status401 :: Status -- | Unauthorized 401 unauthorized401 :: Status -- | Payment Required 402 status402 :: Status -- | Payment Required 402 paymentRequired402 :: Status -- | Forbidden 403 status403 :: Status -- | Forbidden 403 forbidden403 :: Status -- | Not Found 404 status404 :: Status -- | Not Found 404 notFound404 :: Status -- | Method Not Allowed 405 status405 :: Status -- | Method Not Allowed 405 methodNotAllowed405 :: Status -- | Not Acceptable 406 status406 :: Status -- | Not Acceptable 406 notAcceptable406 :: Status -- | Proxy Authentication Required 407 status407 :: Status -- | Proxy Authentication Required 407 proxyAuthenticationRequired407 :: Status -- | Request Timeout 408 status408 :: Status -- | Request Timeout 408 requestTimeout408 :: Status -- | Conflict 409 status409 :: Status -- | Conflict 409 conflict409 :: Status -- | Gone 410 status410 :: Status -- | Gone 410 gone410 :: Status -- | Length Required 411 status411 :: Status -- | Length Required 411 lengthRequired411 :: Status -- | Precondition Failed 412 status412 :: Status -- | Precondition Failed 412 preconditionFailed412 :: Status -- | Request Entity Too Large 413 status413 :: Status -- | Request Entity Too Large 413 requestEntityTooLarge413 :: Status -- | Request-URI Too Long 414 status414 :: Status -- | Request-URI Too Long 414 requestURITooLong414 :: Status -- | Unsupported Media Type 415 status415 :: Status -- | Unsupported Media Type 415 unsupportedMediaType415 :: Status -- | Requested Range Not Satisfiable 416 status416 :: Status -- | Requested Range Not Satisfiable 416 requestedRangeNotSatisfiable416 :: Status -- | Expectation Failed 417 status417 :: Status -- | Expectation Failed 417 expectationFailed417 :: Status -- | I'm a teapot 418 status418 :: Status -- | I'm a teapot 418 imATeaPot418 :: Status -- | Internal Server Error 500 status500 :: Status -- | Internal Server Error 500 internalServerError500 :: Status -- | Not Implemented 501 status501 :: Status -- | Not Implemented 501 notImplemented501 :: Status -- | Bad Gateway 502 status502 :: Status -- | Bad Gateway 502 badGateway502 :: Status -- | Service Unavailable 503 status503 :: Status -- | Service Unavailable 503 serviceUnavailable503 :: Status -- | Gateway Timeout 504 status504 :: Status -- | Gateway Timeout 504 gatewayTimeout504 :: Status -- | HTTP Version Not Supported 505 status505 :: Status -- | HTTP Version Not Supported 505 httpVersionNotSupported505 :: Status -- | Header type Header = (CI Ascii, Ascii) -- | Request Headers type RequestHeaders = [Header] -- | Response Headers type ResponseHeaders = [Header] -- | HTTP Headers headerAccept, headerDate, headerContentMD5, headerContentType, headerContentLength, headerConnection, headerCacheControl, headerAuthorization :: Ascii -> Header -- | Query item type QueryItem = (ByteString, Maybe ByteString) -- | Query. -- -- General form: a=b&c=d, but if the value is Nothing, it becomes -- a&c=d. type Query = [QueryItem] -- | Simplified Query item type without support for parameter-less items. type SimpleQueryItem = (ByteString, ByteString) -- | Simplified Query type without support for parameter-less items. type SimpleQuery = [SimpleQueryItem] -- | Convert SimpleQuery to Query. simpleQueryToQuery :: SimpleQuery -> Query -- | Convert Query to ByteString. renderQuery :: Bool -> Query -> Ascii renderQueryBuilder :: Bool -> Query -> Builder -- | Convert SimpleQuery to ByteString. renderSimpleQuery :: Bool -> SimpleQuery -> Ascii -- | Split out the query string into a list of keys and values. A few -- importants points: -- -- parseQuery :: ByteString -> Query -- | Parse SimpleQuery from a ByteString. parseSimpleQuery :: ByteString -> SimpleQuery type QueryText = [(Text, Maybe Text)] queryTextToQuery :: QueryText -> Query queryToQueryText :: Query -> QueryText renderQueryText :: Bool -> QueryText -> Builder parseQueryText :: ByteString -> QueryText -- | Encodes a list of path segments into a valid URL fragment. -- -- This function takes the following three steps: -- -- -- -- For example: -- --
--   encodePathInfo [\"foo\", \"bar\", \"baz\"]
--   
-- -- "foo/bar/baz" -- --
--   encodePathInfo [\"foo bar\", \"baz\/bin\"]
--   
-- -- "foo%20bar/baz%2Fbin" -- --
--   encodePathInfo [\"שלום\"]
--   
-- -- "%D7%A9%D7%9C%D7%95%D7%9D" -- -- Huge thanks to Jeremy Shaw who created the original implementation of -- this function in web-routes and did such thorough research to -- determine all correct escaping procedures. encodePathSegments :: [Text] -> Builder decodePathSegments :: ByteString -> [Text] encodePath :: [Text] -> Query -> Builder decodePath :: ByteString -> ([Text], Query) urlEncodeBuilder :: Bool -> ByteString -> Builder urlEncode :: Bool -> ByteString -> Ascii -- | Percent-decoding. urlDecode :: Bool -> ByteString -> ByteString -- | Method Not Allowed 405 (DEPRECATED!) statusNotAllowed :: Status -- | Continue 100 (DEPRECATED) statusContinue :: Status -- | Switching Protocols 101 (DEPRECATED) statusSwitchingProtocols :: Status -- | OK 200 (DEPRECATED) statusOK :: Status -- | Created 201 (DEPRECATED) statusCreated :: Status -- | Accepted 202 (DEPRECATED) statusAccepted :: Status -- | Non-Authoritative Information 203 (DEPRECATED) statusNonAuthoritative :: Status -- | No Content 204 (DEPRECATED) statusNoContent :: Status -- | Reset Content 205 (DEPRECATED) statusResetContent :: Status -- | Partial Content 206 (DEPRECATED) statusPartialContent :: Status -- | Multiple Choices 300 (DEPRECATED) statusMultipleChoices :: Status -- | Moved Permanently 301 (DEPRECATED) statusMovedPermanently :: Status -- | Found 302 (DEPRECATED) statusFound :: Status -- | See Other 303 (DEPRECATED) statusSeeOther :: Status -- | Not Modified 304 (DEPRECATED) statusNotModified :: Status -- | Use Proxy 305 (DEPRECATED) statusUseProxy :: Status -- | Temporary Redirect 307 (DEPRECATED) statusTemporaryRedirect :: Status -- | Bad Request 400 (DEPRECATED) statusBadRequest :: Status -- | Unauthorized 401 (DEPRECATED) statusUnauthorized :: Status -- | Payment Required 402 (DEPRECATED) statusPaymentRequired :: Status -- | Forbidden 403 (DEPRECATED) statusForbidden :: Status -- | Not Found 404 (DEPRECATED) statusNotFound :: Status -- | Not Acceptable 406 (DEPRECATED) statusNotAcceptable :: Status -- | Proxy Authentication Required 407 statusProxyAuthenticationRequired :: Status -- | Request Timeout 408 (DEPRECATED) statusRequestTimeout :: Status -- | Conflict 409 (DEPRECATED) statusConflict :: Status -- | Gone 410 (DEPRECATED) statusGone :: Status -- | Length Required 411 (DEPRECATED) statusLengthRequired :: Status -- | Precondition Failed 412 (DEPRECATED) statusPreconditionFailed :: Status -- | Request Entity Too Large 413 (DEPRECATED) statusRequestEntityTooLarge :: Status -- | Request-URI Too Long 414 (DEPRECATED) statusRequestURITooLong :: Status -- | Unsupported Media Type 415 (DEPRECATED) statusUnsupportedMediaType :: Status -- | Requested Range Not Satisfiable 416 (DEPRECATED) statusRequestedRangeNotSatisfiable :: Status -- | Expectation Failed 417 (DEPRECATED) statusExpectationFailed :: Status -- | I'm a teapot 418 (DEPRECATED) statusImATeapot :: Status -- | Internal Server Error 500 (DEPRECATED) statusServerError :: Status -- | Not Implemented 501 (DEPRECATED) statusNotImplemented :: Status -- | Bad Gateway 502 (DEPRECATED) statusBadGateway :: Status -- | Service Unavailable 503 (DEPRECATED) statusServiceUnavailable :: Status -- | Gateway Timeout 504 (DEPRECATED) statusGatewayTimeout :: Status -- | HTTP Version Not Supported 505 (DEPRECATED) statusHTTPVersionNotSupported :: Status instance Read StdMethod instance Show StdMethod instance Eq StdMethod instance Ord StdMethod instance Enum StdMethod instance Bounded StdMethod instance Ix StdMethod instance Eq HttpVersion instance Ord HttpVersion instance Show Status instance Ord Status instance Eq Status instance Show HttpVersion