module Nethttp:sig
..end
typeprotocol_version =
int * int
typeprotocol_attribute =
[ `Secure_https ]
typeprotocol =
[ `Http of protocol_version * protocol_attribute list
| `Other ]
`Http((0,9),_)
is the ancient HTTP version 0.9`Http((1,n),_)
is the HTTP protocol 1.n. It is expected that
all these versions are compatible to each other
except negotiable features.`Http((m,_),_)
for m>1 is regarded as unknown protocol,
incompatible to any `Http((1,n),_)
`Other
is anything else (unrecognizes protocol)val string_of_protocol : protocol -> string
`Other
val protocol_of_string : string -> protocol
`Other
for unrecognized stringstypehttp_status =
[ `Accepted
| `Bad_gateway
| `Bad_request
| `Conflict
| `Continue
| `Created
| `Expectation_failed
| `Forbidden
| `Found
| `Gateway_timeout
| `Gone
| `Http_version_not_supported
| `Internal_server_error
| `Length_required
| `Method_not_allowed
| `Moved_permanently
| `Multiple_choices
| `No_content
| `Non_authoritative
| `Not_acceptable
| `Not_found
| `Not_implemented
| `Not_modified
| `Ok
| `Partial_content
| `Payment_required
| `Precondition_failed
| `Proxy_auth_required
| `Request_entity_too_large
| `Request_timeout
| `Request_uri_too_long
| `Requested_range_not_satisfiable
| `Reset_content
| `See_other
| `Service_unavailable
| `Switching_protocols
| `Temporary_redirect
| `Unauthorized
| `Unsupported_media_type
| `Use_proxy ]
Informational (1xx):
`Continue
`Switching_protocols
`Ok
`Created
`Accepted
`Non_authoritative
`No_content
`Reset_content
`Partial_content
`Multiple_choices
`Moved_permanently
`Found
`See_other
`Not_modified
`Use_proxy
`Temporary_redirect
`Bad_request
`Unauthorized
`Payment_required
`Forbidden
`Not_found
`Method_not_allowed
`Not_acceptable
`Proxy_auth_required
`Request_timeout
`Conflict
`Gone
`Length_required
`Precondition_failed
`Request_entity_too_large
`Request_uri_too_long
`Unsupported_media_type
`Request_range_not_satisfiable
`Expectation_failed
`Internal_server_error
`Not_implemented
`Bad_gateway
`Service_unavailable
`Gateway_timeout
`Http_version_not_supported
val int_of_http_status : http_status -> int
val http_status_of_int : int -> http_status
Not_found
val string_of_http_status : http_status -> string
typehttp_method =
string * string
typecache_control_token =
[ `Extension of string * string option
| `Max_age of int
| `Max_stale of int option
| `Min_fresh of int
| `Must_revalidate
| `No_cache of string list
| `No_store
| `No_transform
| `Only_if_cached
| `Private of string list
| `Proxy_revalidate
| `Public
| `S_maxage of int ]
Cache-control
headertypeetag =
[ `Strong of string | `Weak of string ]
val weak_validator_match : etag -> etag -> bool
val strong_validator_match : etag -> etag -> bool
exception Bad_header_field of string
class type http_header = Netmime.mime_header
class type http_header_ro = Netmime.mime_header_ro
class type http_trailer = Netmime.mime_header
class type http_trailer_ro = Netmime.mime_header_ro
val status_of_cgi_header : http_header -> int * string
Status
headertype
cookie = {
|
cookie_name : |
(* | The name of the cookie | *) |
|
cookie_value : |
(* | The value of the cookie. There are no restrictions on the value of the cookie | *) |
|
cookie_expires : |
(* | Expiration:
| *) |
|
cookie_domain : |
(* | Cookies are bound to a certain domain, i.e. the browser sends
them only when web pages of the domain are requested:
| *) |
|
cookie_path : |
(* | Cookies are also bound to certain path prefixes, i.e. the browser
sends them only when web pages at the path or below are requested.
| *) |
|
cookie_secure : |
(* | Cookies are also bound to the type of the web server:
false means servers without SSL, true means servers with
activated SSL ("https"). | *) |
val decode_query : string -> string * string
val split_host_port : string -> string * int option
Host
header in hostname and optional port number.
Fails on syntax errorval uripath_encode : string -> string
val uripath_decode : string -> string
module Header:sig
..end