Ocsigen

This is a preliminary version of the documentation. Help us to improve it by filling tickets. We are looking for native english speakers to proof read the documentation. Contact us!

Module Ocsigen_http_frame


module Ocsigen_http_frame: sig .. end
This table is to store cookie values for each path. The key has type url_path option: it is for the path (default: root of the site),

type etag = string 
type url_path = string list 
module Cookies: Map.S   with type key = url_path
This table is to store cookie values for each path.
module Cookievalues: Map.S   with type key = string
This table is to store one cookie value for each cookie name.

type cookie =
|OSet of float option * string
|OUnset
Type used for cookies to set. The float option is the timestamp for the expiration date. The string is the value.
type cookieset = cookie Cookievalues.t
Cookies.t
val add_cookie : url_path ->
string ->
cookie ->
cookieset -> cookieset
add_cookie c cookie_table adds the cookie c to the table cookie_table. If the cookie is already bound, the previous binding disappear.
val add_cookies : cookie Cookievalues.t
Cookies.t ->
cookie Cookievalues.t
Cookies.t ->
cookie Cookievalues.t
Cookies.t
add_cookies newcookies oldcookies adds the cookies from newcookies to oldcookies. If cookies are already bound in oldcookies, the previous binding disappear.
val compute_new_ri_cookies : float ->
string list ->
string Cookievalues.t ->
cookie Cookievalues.t
Cookies.t -> string Cookievalues.t
compute_new_ri_cookies now path ri_cookies cookies_to_set adds the cookies from cookies_to_set to ri_cookies, as if the cookies add been send to the browser and the browser was doing a new request to the url path. Only the cookies that match path (current path) are added.

type result = {
  res_cookies : cookieset;(*cookies to set*)
  res_lastmodified : float option;(*Default: None*)
  res_etag : etag option;
  res_code : int;(*HTTP code, if not 200*)
  res_stream : string Ocsigen_stream.t;(*Default: empty stream*)
  res_stop_stream : unit -> unit Lwt.t;(*A function that will be called if sending the stream fails. It is called before the stream finalizer, only in case of error. Use it if you want a different behaviour if sending succeeds or not. Default is do nothing (Lwt.return).*)
  res_content_length : int64 option;(*None means Transfer-encoding: chunked*)
  res_content_type : string option;
  res_headers : Http_headers.t;(*The headers you want to add*)
  res_charset : string option;(*Default: None*)
  res_location : string option;(*Default: None*)
}
The type of answers to send
val default_result : unit -> result
Default result to use as a base for constructing others.
val empty_result : unit -> result
result for an empty page.
module type HTTP_CONTENT = sig .. end
module Http_header: sig .. end
module Http_error: sig .. end

type t = {
  header : Http_header.http_header;
  content : string Ocsigen_stream.t option;
  abort : unit -> unit Lwt.t;
}
The type of HTTP frames. The content may be void (no body) or a stream. While sending, a stream will be sent with chunked encoding if no content-length is supplied. abort is the function to be called if you want to cancel the stream reading (closes the connection).