package cohttp

  1. Overview
  2. Docs

HTTP/1.1 response handling

This contains the metadata for a HTTP/1.1 response header, including the encoding, headers, version, status code and whether to flush the connection after every body chunk (useful for server-side events and other long-lived connection protocols). The body is handled by the separate S module type, as it is dependent on the IO implementation.

The interface exposes a fieldslib interface which provides individual accessor functions for each of the records below. It also provides sexp serializers to convert to-and-from an Core.Std.Sexp.t.

include S.Response with type t = Http.Response.t
type t = Http.Response.t = {
  1. encoding : Transfer.encoding;
    (*
    • deprecated this field will be removed in the future
    *)
  2. headers : Header.t;
    (*

    response HTTP headers

    *)
  3. version : Code.version;
    (*

    (** HTTP version, usually 1.1 *)

    *)
  4. status : Code.status_code;
    (*

    HTTP status code of the response

    *)
  5. flush : bool;
    (*
    • deprecated this field will be removed in the future
    *)
}
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val encoding : t -> Transfer.encoding
val headers : t -> Header.t
val version : t -> Code.version
val status : t -> Code.status_code
val flush : t -> bool
val compare : t -> t -> int
val make : ?version:Code.version -> ?status:Code.status_code -> ?flush:bool -> ?encoding:Transfer.encoding -> ?headers:Header.t -> unit -> t

make () is a value of t. The default values for the request, if not specified, are: status is `Ok, version is `HTTP_1_1, flush is false and headers is Header.empty. The request encoding value is determined via the Header.get_transfer_encoding function and, if not found, uses the default value Transfer.Chunked.

val has_body : t -> [ `No | `Unknown | `Yes ]
val pp_hum : Format.formatter -> t -> unit

Human-readable output, used by the toplevel printer

module Make (IO : S.IO) : S.Http_io with type t = t and module IO = IO
module Private : sig ... end
OCaml

Innovation. Community. Security.