package cohttp

  1. Overview
  2. Docs

Module Cohttp.RequestSource

HTTP/1.1 request handling

This contains the metadata for a HTTP/1.1 request header, including the headers, version, meth and uri. 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.Request with type t = Http.Request.t
Sourcetype t = Http.Request.t = {
  1. headers : Header.t;
    (*

    HTTP request headers

    *)
  2. meth : Code.meth;
    (*

    HTTP request method

    *)
  3. scheme : string option;
    (*

    URI scheme (http or https)

    *)
  4. resource : string;
    (*

    Request path and query

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

    HTTP version, usually 1.1

    *)
  6. encoding : Transfer.encoding;
    (*
    • deprecated this field will be removed in the future
    *)
}
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
Sourceval t_of_sexp : Sexplib0.Sexp.t -> t
Sourceval sexp_of_t : t -> Sexplib0.Sexp.t
Sourceval headers : t -> Header.t
Sourceval meth : t -> Code.meth
Sourceval scheme : t -> string option
Sourceval resource : t -> string
Sourceval version : t -> Code.version
Sourceval encoding : t -> Transfer.encoding
Sourceval compare : t -> t -> int
Sourceval make : ?meth:Code.meth -> ?version:Code.version -> ?encoding:Transfer.encoding -> ?headers:Header.t -> Uri.t -> 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.Fixed 0.

Sourceval is_keep_alive : t -> bool

Return true whether the connection should be reused

Sourceval uri : t -> Uri.t
Sourceval make_for_client : ?headers:Header.t -> ?chunked:bool -> ?body_length:int64 -> Code.meth -> Uri.t -> t
Sourceval has_body : t -> [ `No | `Unknown | `Yes ]
Sourceval pp_hum : Format.formatter -> t -> unit

Human-readable output, used by the toplevel printer

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

Innovation. Community. Security.