.. index:: single: http_cookies(Representation) .. _http_cookies/1: .. rst-class:: right **object** ``http_cookies(Representation)`` ================================ * ``Representation`` - Cookie header representation. Valid values are ``atom``, ``chars``, and ``codes``. HTTP Cookie and ``Set-Cookie`` header parsing and generation predicates implementing RFC 6265 syntax. | **Availability:** | ``logtalk_load(http_cookies(loader))`` | **Author:** Paulo Moura | **Version:** 1:0:0 | **Date:** 2026-06-27 | **Compilation flags:** | ``static, context_switching_calls`` | **Uses:** | :ref:`date ` | :ref:`list ` | **Remarks:** - Cookie header pairs: Cookie header values are represented as ``Name-Value`` pairs. - Set-Cookie components: Set-Cookie header values are represented by a cookie name, a cookie value, and an attribute list where attributes use ``Key-Value`` notation such as ``expires-date_time(Year, Month, Day, Hours, Minutes, Seconds)``, ``max_age-Seconds``, ``domain-Domain``, ``path-Path``, ``secure-true``, ``http_only-true``, ``same_site-lax``, ``partitioned-true``, ``priority-high``, and ``extension-Attribute``. - Extension attributes: Unknown ``Set-Cookie`` attributes are preserved verbatim as ``extension-Attribute`` pairs as long as they do not use a reserved RFC 6265 attribute name. - Expires attribute: The ``Expires`` attribute value is normalized to a ``date_time(Year, Month, Day, Hours, Minutes, Seconds)`` term and generated back using the canonical HTTP-date representation. | **Inherited public predicates:** | (none) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: valid_cookie/1 .. _http_cookies/1::valid_cookie/1: ``valid_cookie/1`` ^^^^^^^^^^^^^^^^^^ True iff the argument is a valid HTTP ``Cookie`` header field value. | **Compilation flags:** | ``static`` | **Template:** | ``valid_cookie(Cookie)`` | **Mode and number of proofs:** | ``valid_cookie(++text)`` - ``zero_or_one`` ------------ .. index:: parse_cookie/2 .. _http_cookies/1::parse_cookie/2: ``parse_cookie/2`` ^^^^^^^^^^^^^^^^^^ Parses a ``Cookie`` header field value into a list of ``Name-Value`` pairs. | **Compilation flags:** | ``static`` | **Template:** | ``parse_cookie(Cookie,Pairs)`` | **Mode and number of proofs:** | ``parse_cookie(++text,-list(compound))`` - ``zero_or_one`` ------------ .. index:: generate_cookie/2 .. _http_cookies/1::generate_cookie/2: ``generate_cookie/2`` ^^^^^^^^^^^^^^^^^^^^^ Generates a canonical ``Cookie`` header field value from a list of ``Name-Value`` pairs using ``;`` as the separator. | **Compilation flags:** | ``static`` | **Template:** | ``generate_cookie(Pairs,Cookie)`` | **Mode and number of proofs:** | ``generate_cookie(++list(compound),-text)`` - ``zero_or_one`` ------------ .. index:: valid_set_cookie/1 .. _http_cookies/1::valid_set_cookie/1: ``valid_set_cookie/1`` ^^^^^^^^^^^^^^^^^^^^^^ True iff the argument is a valid HTTP ``Set-Cookie`` header field value. | **Compilation flags:** | ``static`` | **Template:** | ``valid_set_cookie(SetCookie)`` | **Mode and number of proofs:** | ``valid_set_cookie(++text)`` - ``zero_or_one`` ------------ .. index:: parse_set_cookie/4 .. _http_cookies/1::parse_set_cookie/4: ``parse_set_cookie/4`` ^^^^^^^^^^^^^^^^^^^^^^ Parses a ``Set-Cookie`` header field value into a cookie name, a cookie value, and a list of attributes. | **Compilation flags:** | ``static`` | **Template:** | ``parse_set_cookie(SetCookie,Name,Value,Attributes)`` | **Mode and number of proofs:** | ``parse_set_cookie(++text,-text,-text,-list(compound))`` - ``zero_or_one`` ------------ .. index:: generate_set_cookie/4 .. _http_cookies/1::generate_set_cookie/4: ``generate_set_cookie/4`` ^^^^^^^^^^^^^^^^^^^^^^^^^ Generates a canonical ``Set-Cookie`` header field value from a cookie name, a cookie value, and a list of attributes. | **Compilation flags:** | ``static`` | **Template:** | ``generate_set_cookie(Name,Value,Attributes,SetCookie)`` | **Mode and number of proofs:** | ``generate_set_cookie(++text,++text,++list(compound),-text)`` - ``zero_or_one`` ------------ .. index:: normalize_cookie_attributes/2 .. _http_cookies/1::normalize_cookie_attributes/2: ``normalize_cookie_attributes/2`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Normalizes and validates a ``Set-Cookie`` attribute list using the canonical attribute term representation. | **Compilation flags:** | ``static`` | **Template:** | ``normalize_cookie_attributes(Attributes,NormalizedAttributes)`` | **Mode and number of proofs:** | ``normalize_cookie_attributes(++list(compound),-list(compound))`` - ``zero_or_one`` ------------ .. index:: cookie_attribute_present/2 .. _http_cookies/1::cookie_attribute_present/2: ``cookie_attribute_present/2`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ True iff a normalized ``Set-Cookie`` attribute list contains an attribute with the given name. | **Compilation flags:** | ``static`` | **Template:** | ``cookie_attribute_present(Attributes,Name)`` | **Mode and number of proofs:** | ``cookie_attribute_present(++list(compound),++atom)`` - ``zero_or_one`` ------------ .. index:: cookie_attribute_value/3 .. _http_cookies/1::cookie_attribute_value/3: ``cookie_attribute_value/3`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the first value for the attribute with the given name in a normalized ``Set-Cookie`` attribute list. | **Compilation flags:** | ``static`` | **Template:** | ``cookie_attribute_value(Attributes,Name,Value)`` | **Mode and number of proofs:** | ``cookie_attribute_value(++list(compound),++atom,-term)`` - ``zero_or_one`` ------------ .. index:: cookie_attribute_value/4 .. _http_cookies/1::cookie_attribute_value/4: ``cookie_attribute_value/4`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Returns the first value for the attribute with the given name in a normalized ``Set-Cookie`` attribute list or the given default value when absent. | **Compilation flags:** | ``static`` | **Template:** | ``cookie_attribute_value(Attributes,Name,Default,Value)`` | **Mode and number of proofs:** | ``cookie_attribute_value(++list(compound),++atom,++term,-term)`` - ``zero_or_one`` ------------ .. index:: cookie_expiry/2 .. _http_cookies/1::cookie_expiry/2: ``cookie_expiry/2`` ^^^^^^^^^^^^^^^^^^^ Returns the raw normalized expiry view for a ``Set-Cookie`` attribute list as ``session``, ``max_age(Seconds)``, or ``expires(DateTime)``. | **Compilation flags:** | ``static`` | **Template:** | ``cookie_expiry(Attributes,Expiry)`` | **Mode and number of proofs:** | ``cookie_expiry(++list(compound),-compound)`` - ``zero_or_one`` ------------ .. index:: cookie_expiry/3 .. _http_cookies/1::cookie_expiry/3: ``cookie_expiry/3`` ^^^^^^^^^^^^^^^^^^^ Resolves the normalized expiry view for a ``Set-Cookie`` attribute list against the given current Unix time as ``session``, ``delete``, or ``expires(UnixTime)``. | **Compilation flags:** | ``static`` | **Template:** | ``cookie_expiry(Attributes,CurrentUnixTime,Expiry)`` | **Mode and number of proofs:** | ``cookie_expiry(++list(compound),++integer,-compound)`` - ``zero_or_one`` ------------ .. index:: cookie_deletion/3 .. _http_cookies/1::cookie_deletion/3: ``cookie_deletion/3`` ^^^^^^^^^^^^^^^^^^^^^ Returns a canonical ``Set-Cookie`` term that deletes the named cookie while echoing the relevant scoping and policy attributes from a template attribute list. | **Compilation flags:** | ``static`` | **Template:** | ``cookie_deletion(Name,Attributes,Deletion)`` | **Mode and number of proofs:** | ``cookie_deletion(++text,++list(compound),-compound)`` - ``zero_or_one`` ------------ Protected predicates -------------------- (no local declarations; see entity ancestors if any) Private predicates ------------------ (no local declarations; see entity ancestors if any) Operators --------- (none)