Module Http_parser


module Http_parser: sig .. end
HTTP messages parsing

val split_query_params : string -> (string * string) list
given an HTTP like query string (e.g. "name1=value1&name2=value2&...")
Raises Returns a list of pairs ("name1", "value1"); ("name2", "value2")
val parse_request_fst_line : Pervasives.in_channel ->
Http_types.meth * Neturl.url * Http_types.version option
parse 1st line of an HTTP request
Raises Returns a triple meth * url * version, meth is the HTTP method invoked, url is the requested url, version is the HTTP version specified or None if no version was specified
val parse_response_fst_line : Pervasives.in_channel -> Http_types.version * Http_types.status
parse 1st line of an HTTP response
Raises Malformed_response if first line isn't well formed
val parse_query_get_params : Neturl.url -> (string * string) list
parse HTTP GET parameters from an URL; paramater which were passed with no value (like 'x' in "/foo.cgi?a=10&x=&c=9") are returned associated with the empty ("") string.
Returns a list of pairs param_name * param_value
val parse_path : Neturl.url -> string
parse the base path (removing query string, fragment, ....) from an URL
val parse_headers : Pervasives.in_channel -> (string * string) list
parse HTTP headers. Consumes also trailing CRLF at the end of header list
Raises Invalid_header if a not well formed header is encountered
Returns a list of pairs header_name * header_value
val parse_request : Pervasives.in_channel -> string * (string * string) list
given an input channel, reads from it a GET HTTP request and
Returns a pair <path, query_params> where path is a string representing the requested path and query_params is a list of pairs <name, value> (the GET parameters)