Module H2.Method

Request Method

The request method token is the primary source of request semantics; it indicates the purpose for which the client has made this request and what is expected by the client as a successful result.

See RFC7231§4 for more details.

This module is a proxy to Httpaf.Method and is included in h2 for convenience.

Request Method

The request method token is the primary source of request semantics; it indicates the purpose for which the client has made this request and what is expected by the client as a successful result.

See RFC7231§4 for more details.

type standard = [
  1. | `GET
    (*

    RFC7231§4.3.1. Safe, Cacheable.

    *)
  2. | `HEAD
    (*

    RFC7231§4.3.2. Safe, Cacheable.

    *)
  3. | `POST
    (*

    RFC7231§4.3.3. Cacheable.

    *)
  4. | `PUT
    (*

    RFC7231§4.3.4. Idempotent.

    *)
  5. | `DELETE
    (*

    RFC7231§4.3.5. Idempotent.

    *)
  6. | `CONNECT
  7. | `OPTIONS
    (*

    RFC7231§4.3.7. Safe.

    *)
  8. | `TRACE
    (*

    RFC7231§4.3.8. Safe.

    *)
]
type t = [
  1. | standard
  2. | `Other of string
    (*

    Methods defined outside of RFC7231, or custom methods.

    *)
]
val is_safe : standard -> bool

Request methods are considered "safe" if their defined semantics are essentially read-only; i.e., the client does not request, and does not expect, any state change on the origin server as a result of applying a safe method to a target resource. Likewise, reasonable use of a safe method is not expected to cause any harm, loss of property, or unusual burden on the origin server.

See RFC7231§4.2.1 for more details.

val is_cacheable : standard -> bool

Request methods can be defined as "cacheable" to indicate that responses to them are allowed to be stored for future reuse.

See RFC7234 for more details.

val is_idempotent : standard -> bool

A request method is considered "idempotent" if the intended effect on the server of multiple identical requests with that method is the same as the effect for a single such request. Of the request methods defined by this specification, PUT, DELETE, and safe request methods are idempotent.

See RFC7231§4.2.2 for more details.

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