![]() |
![]()
| ![]() |
![]()
NAMEvmod_cookie - Varnish Cookie Module SYNOPSISimport cookie [as name] [from "path"] VOID clean() VOID delete(STRING cookiename) VOID filter(STRING filterstring) VOID filter_re(REGEX expression) VOID keep(STRING filterstring) VOID keep_re(REGEX expression) STRING format_date(TIME now, DURATION timedelta) STRING get(STRING cookiename) STRING get_re(REGEX expression) STRING get_string() BOOL isset(STRING cookiename) VOID parse(STRING cookieheader) VOID set(STRING cookiename, STRING value) DESCRIPTIONHandle HTTP cookies more easily in Varnish VCL. Parses a cookie header into an internal data store, where per-cookie get/set/delete functions are available. A keep() function removes all but a set comma-separated list of cookies. A filter() function removes a comma- separated list of cookies. Regular expressions can be used for either selecting cookies, deleting matching cookies and deleting non-matching cookie names. A convenience function for formatting the Set-Cookie Expires date field is also included. The state loaded with cookie.parse() has a lifetime of the current request or backend request context. To pass variables to the backend request, store the contents as fake bereq headers. Filtering example: import cookie; sub vcl_recv { VOID clean()Clean up previously parsed cookies. It is not necessary to run clean() in normal operations. Example: sub vcl_recv { VOID delete(STRING cookiename)Delete cookiename from internal vmod storage if it exists. Example: sub vcl_recv { VOID filter(STRING filterstring)Delete all cookies from internal vmod storage that are in the comma-separated argument cookienames. Example: sub vcl_recv { VOID filter_re(REGEX expression)Delete all cookies from internal vmod storage that matches the regular expression expression. Example: sub vcl_recv { VOID keep(STRING filterstring)Delete all cookies from internal vmod storage that is not in the comma-separated argument cookienames. Example: sub vcl_recv { VOID keep_re(REGEX expression)Delete all cookies from internal vmod storage that does not match expression expression. Example: sub vcl_recv { STRING format_date(TIME now, DURATION timedelta)Get a RFC1123 formatted date string suitable for inclusion in a Set-Cookie response header. Care should be taken if the response has multiple Set-Cookie headers. In that case the header vmod should be used. Example: sub vcl_deliver { STRING get(STRING cookiename)Get the value of cookiename, as stored in internal vmod storage. Example: import std; sub vcl_recv { If cookiename does not exist, the NULL string is returned. Note that a NULL string is converted to an empty string when assigned to a header. This means that the following is correct: if (req.http.Cookie) { However, using cookie.isset() is often a better way to check if a particular cookie is present, like this: unset req.http.X-tmp; # unnecessary if no fallback is needed if (req.http.Cookie) { STRING get_re(REGEX expression)Get the value of the first cookie in internal vmod storage that matches the regular expression expression. If nothing matches, the NULL string is returned. Example: import std; sub vcl_recv { STRING get_string()Get a Cookie string value with all cookies in internal vmod storage. Does not modify internal storage. Example: sub vcl_recv { BOOL isset(STRING cookiename)Check if cookiename is set in the internal vmod storage. Example: import std; sub vcl_recv { VOID parse(STRING cookieheader)Parse the cookie string in cookieheader. If state already exists, clean() will be run first. Example: sub vcl_recv { VOID set(STRING cookiename, STRING value)Set the internal vmod storage for cookiename to value. Example: sub vcl_recv { DEPRECATEDALIAS format_rfc1123()Deprecated alias for format_date(). COPYRIGHTThis document is licensed under the same conditions as Varnish itself. See LICENSE for details. SPDX-License-Identifier: BSD-2-Clause
|