mirror of
https://github.com/c-cube/tiny_httpd.git
synced 2025-12-06 03:05:29 -05:00
40 lines
1.1 KiB
OCaml
40 lines
1.1 KiB
OCaml
(** Headers
|
|
|
|
Headers are metadata associated with a request or response. *)
|
|
|
|
type t = (string * string) list
|
|
(** The header files of a request or response.
|
|
|
|
Neither the key nor the value can contain ['\r'] or ['\n'].
|
|
See https://tools.ietf.org/html/rfc7230#section-3.2 *)
|
|
|
|
val empty : t
|
|
(** Empty list of headers.
|
|
@since 0.5 *)
|
|
|
|
val get : ?f:(string -> string) -> string -> t -> string option
|
|
(** [get k headers] looks for the header field with key [k].
|
|
@param f if provided, will transform the value before it is returned. *)
|
|
|
|
val get_exn : ?f:(string -> string) -> string -> t -> string
|
|
(** @raise Not_found *)
|
|
|
|
val set : string -> string -> t -> t
|
|
(** [set k v headers] sets the key [k] to value [v].
|
|
It erases any previous entry for [k] *)
|
|
|
|
val remove : string -> t -> t
|
|
(** Remove the key from the headers, if present. *)
|
|
|
|
val contains : string -> t -> bool
|
|
(** Is there a header with the given key? *)
|
|
|
|
val pp : Format.formatter -> t -> unit
|
|
(** Pretty print the headers. *)
|
|
|
|
(**/*)
|
|
|
|
val parse_ : buf:Buf.t -> IO.Input.t -> t
|
|
val parse_line_ : string -> (string * string, string) result
|
|
|
|
(**/*)
|