package http-cookie
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=d8dd3505bee94e38d731cae08b7a33a5be3d8ed625c0c47f657d8784e633be02
sha512=1118980e056bece4ebf6ecf24bd6eaa575c8cda1ae37b921ddb044f30cdc42a77c98cf99763a808b45fbb84a55d4abdd1b41a1def6aa037ee7dd797b17365ac6
Description
OCaml library to manipulate HTTP cookie. Adheres to RFC 6265.
Published: 18 Aug 2021
README
Cookies
A comprehensive and strict standards compliant HTTP cookies library for ocaml. API Documentation
http-cookie
supports consuming and creating HTTP cookies found in HTTP request Cookie
header and in Set-Cookie
header in HTTP response. The library validates all cookie attributes, cookie name and cookie value for standards conformance and correct usage. The validation suite is comprehensive and includes validation of domain name, IPv4, IPv6 and HTTP date-time formats.
The RFC standards implemented by the library are:
Cookies - RFC 6265 - Strict standards compliance.
HTTP Date - RFC 1123 - HTTP date time format specification.
Domain Name - RFC 1034 - Domain name format specification.
Hosts - RFC 1123 - Host name format specification.
IPv4/IPv6 - IPv4 and IPv6 address format specification.
Usage
# #require "http-cookie";;
# #install_printer Http_cookie.pp;;
HTTP Cookie
header value:
# let s = "SID=234234asdasdasda" in
let c = List.nth (Http_cookie.of_cookie s |> Result.get_ok) 0 in
let s1 = Http_cookie.to_cookie c in
s = s1 ;;
- : bool = true
HTTP Set-Cookie
header value:
# let s = "SID=31d4d96e407aad42; Path=/; Domain=ffff::0234:ddd:192.168.0.1; Expires=Sun, 06 Nov 1994 08:49:37 GMT; Secure; HttpOnly" in
let c = Http_cookie.of_set_cookie s |> Result.get_ok in
let s2 = Http_cookie.to_set_cookie c in
s = s2
- : bool = true
Create HTTP cookie:
# Http_cookie.create ~path:"/home" ~domain:"eee:aaa:abdf::223:192.168.0.1" ~secure:true ~same_site:`Strict ~name:"SID" "31d4d96e407aad42";;
- : (Http_cookie.t, string) result =
Ok
name: SID
value: 31d4d96e407aad42
path: /home
domain: eee:aaa:abdf::223:192.168.0.1
expires:
max_age:
secure: true
http_only: false
same_site: Strict
extension: