Module H2.Status

Response Status Codes

The status-code element is a three-digit integer code giving the result of the attempt to understand and satisfy the request.

See RFC7231§6 for more details.

This module is a strict superset of Httpaf.Status. Even though the HTTP/2 specification removes support for the Switching_protocols status code, h2 keeps it for the sake of higher level interaction between OCaml libraries that support both HTTP/1 and HTTP/2.

See RFC7540§8.1.1 for more details.

include module type of Httpaf.Status with type Status.client_error := Httpaf.Status.client_error and type Status.standard := Httpaf.Status.standard and type Status.t := Httpaf.Status.t
type informational = [
| `Continue
| `Switching_protocols
]
type successful = [
| `Accepted
| `Created
| `No_content
| `Non_authoritative_information
| `OK
| `Partial_content
| `Reset_content
]
type redirection = [
| `Found
| `Moved_permanently
| `Multiple_choices
| `Not_modified
| `See_other
| `Temporary_redirect
| `Use_proxy
]
type server_error = [
| `Bad_gateway
| `Gateway_timeout
| `Http_version_not_supported
| `Internal_server_error
| `Not_implemented
| `Service_unavailable
]
val default_reason_phrase : Httpaf.Status.standard -> string
val to_code : Httpaf.Status.t -> int
val of_code : int -> Httpaf.Status.t
val unsafe_of_code : int -> Httpaf.Status.t
val is_informational : Httpaf.Status.t -> bool
val is_successful : Httpaf.Status.t -> bool
val is_redirection : Httpaf.Status.t -> bool
val is_client_error : Httpaf.Status.t -> bool
val is_server_error : Httpaf.Status.t -> bool
val is_error : Httpaf.Status.t -> bool
val to_string : Httpaf.Status.t -> string
val of_string : string -> Httpaf.Status.t
val pp_hum : Stdlib.Format.formatter -> Httpaf.Status.t -> unit
type client_error = [
| Httpaf.Status.client_error
| `Misdirected_request
]

The 4xx (Client Error) class of status code indicates that the client seems to have erred.

See RFC7231§6.5 for more details.

In addition to http/af, this type also includes the 421 (Misdirected Request) tag. See RFC7540§9.1.2 for more details.

type standard = [
| Httpaf.Status.standard
| client_error
]

The status codes defined in the HTTP/1.1 RFCs, excluding the Switching Protocols status and including the Misdirected Request as per the HTTP/2 RFC.

See RFC7540§8.1.1 and RFC7540§9.1.2 for more details.

type t = [
| standard
| `Code of int
]

The standard codes along with support for custom codes.

val default_reason_phrase : standard -> string

default_reason_phrase standard is the example reason phrase provided by RFC7231 for the standard status code. The RFC allows servers to use reason phrases besides these in responses.

val to_code : t -> int

to_code t is the integer representation of t.

val of_code : int -> t

of_code i is the t representation of i. of_code raises Failure if i is not a positive three-digit number.

val unsafe_of_code : int -> t

unsafe_of_code i is equivalent to of_code i, except it accepts any positive code, regardless of the number of digits it has. On negative codes, it will still raise Failure.

val is_informational : t -> bool

is_informational t is true iff t belongs to the Informational class of status codes.

val is_successful : t -> bool

is_successful t is true iff t belongs to the Successful class of status codes.

val is_redirection : t -> bool

is_redirection t is true iff t belongs to the Redirection class of status codes.

val is_client_error : t -> bool

is_client_error t is true iff t belongs to the Client Error class of status codes.

val is_server_error : t -> bool

is_server_error t is true iff t belongs to the Server Error class of status codes.

val is_error : t -> bool

is_server_error t is true iff t belongs to the Client Error or Server Error class of status codes.

val to_string : t -> string
val of_string : string -> t
val pp_hum : Stdlib.Format.formatter -> t -> unit