⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.96
Server IP:
147.93.97.220
Server:
Linux srv843233 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
Server Software:
nginx/1.28.0
PHP Version:
8.2.29
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
varnish
/
html
/
reference
/
View File Name :
vmod_cookie.html
<!DOCTYPE html> <html lang="en" data-content_root="../"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> <title>VMOD cookie - Varnish Cookie Module — Varnish version 7.5.0 documentation</title> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" /> <link rel="stylesheet" type="text/css" href="../_static/classic.css?v=e2714048" /> <script src="../_static/documentation_options.js?v=8214db13"></script> <script src="../_static/doctools.js?v=888ff710"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="next" title="VMOD directors - Varnish Directors Module" href="vmod_directors.html" /> <link rel="prev" title="VMOD blob - Utilities for the VCL blob type, encoding and decoding" href="vmod_blob.html" /> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="vmod_directors.html" title="VMOD directors - Varnish Directors Module" accesskey="N">next</a> |</li> <li class="right" > <a href="vmod_blob.html" title="VMOD blob - Utilities for the VCL blob type, encoding and decoding" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Varnish version 7.5.0 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">The Varnish Reference Manual</a> »</li> <li class="nav-item nav-item-this"><a href="">VMOD cookie - Varnish Cookie Module</a></li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="vmod-cookie-varnish-cookie-module"> <span id="vmod-cookie-3"></span><h1>VMOD cookie - Varnish Cookie Module<a class="headerlink" href="#vmod-cookie-varnish-cookie-module" title="Link to this heading">¶</a></h1> <section id="synopsis"> <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Link to this heading">¶</a></h2> <pre class="literal-block">import cookie [as name] [from "path"] <a class="reference internal" href="#cookie-clean"><span class="std std-ref">VOID clean()</span></a> <a class="reference internal" href="#cookie-delete"><span class="std std-ref">VOID delete(STRING cookiename)</span></a> <a class="reference internal" href="#cookie-filter"><span class="std std-ref">VOID filter(STRING filterstring)</span></a> <a class="reference internal" href="#cookie-filter-re"><span class="std std-ref">VOID filter_re(REGEX expression)</span></a> <a class="reference internal" href="#cookie-keep"><span class="std std-ref">VOID keep(STRING filterstring)</span></a> <a class="reference internal" href="#cookie-keep-re"><span class="std std-ref">VOID keep_re(REGEX expression)</span></a> <a class="reference internal" href="#cookie-format-date"><span class="std std-ref">STRING format_date(TIME now, DURATION timedelta)</span></a> <a class="reference internal" href="#cookie-get"><span class="std std-ref">STRING get(STRING cookiename)</span></a> <a class="reference internal" href="#cookie-get-re"><span class="std std-ref">STRING get_re(REGEX expression)</span></a> <a class="reference internal" href="#cookie-get-string"><span class="std std-ref">STRING get_string()</span></a> <a class="reference internal" href="#cookie-isset"><span class="std std-ref">BOOL isset(STRING cookiename)</span></a> <a class="reference internal" href="#cookie-parse"><span class="std std-ref">VOID parse(STRING cookieheader)</span></a> <a class="reference internal" href="#cookie-set"><span class="std std-ref">VOID set(STRING cookiename, STRING value)</span></a></pre> </section> <section id="description"> <h2>DESCRIPTION<a class="headerlink" href="#description" title="Link to this heading">¶</a></h2> <p>Handle HTTP cookies more easily in Varnish VCL.</p> <p>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.</p> <p>Regular expressions can be used for either selecting cookies, deleting matching cookies and deleting non-matching cookie names.</p> <p>A convenience function for formatting the Set-Cookie Expires date field is also included.</p> <p>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.</p> <p>Filtering example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">cookie</span><span class="p">;</span> <span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">cookie</span><span class="p">)</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">cookie</span><span class="p">);</span> <span class="c1"># Either delete the ones you want to get rid of:</span> <span class="n">cookie</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="s2">"cookie2"</span><span class="p">);</span> <span class="c1"># or delete all but a few:</span> <span class="n">cookie</span><span class="o">.</span><span class="n">keep</span><span class="p">(</span><span class="s2">"SESSIONID,PHPSESSID"</span><span class="p">);</span> <span class="c1"># Store it back into req so it will be passed to the backend.</span> <span class="nb">set</span> <span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">cookie</span> <span class="o">=</span> <span class="n">cookie</span><span class="o">.</span><span class="n">get_string</span><span class="p">();</span> <span class="c1"># If empty, unset so the builtin VCL can consider it for caching.</span> <span class="k">if</span> <span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">cookie</span> <span class="o">==</span> <span class="s2">""</span><span class="p">)</span> <span class="p">{</span> <span class="n">unset</span> <span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">cookie</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div> <section id="void-clean"> <span id="cookie-clean"></span><h3>VOID clean()<a class="headerlink" href="#void-clean" title="Link to this heading">¶</a></h3> <p>Clean up previously parsed cookies. It is not necessary to run clean() in normal operations.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">clean</span><span class="p">();</span> <span class="p">}</span> </pre></div> </div> </section> <section id="void-delete-string-cookiename"> <span id="cookie-delete"></span><h3>VOID delete(STRING cookiename)<a class="headerlink" href="#void-delete-string-cookiename" title="Link to this heading">¶</a></h3> <p>Delete <code class="docutils literal notranslate"><span class="pre">cookiename</span></code> from internal vmod storage if it exists.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2"</span><span class="p">);</span> <span class="n">cookie</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="s2">"cookie2"</span><span class="p">);</span> <span class="c1"># get_string() will now yield "cookie1=value1"</span> <span class="p">}</span> </pre></div> </div> </section> <section id="void-filter-string-filterstring"> <span id="cookie-filter"></span><h3>VOID filter(STRING filterstring)<a class="headerlink" href="#void-filter-string-filterstring" title="Link to this heading">¶</a></h3> <p>Delete all cookies from internal vmod storage that are in the comma-separated argument cookienames.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2; cookie3=value3"</span><span class="p">);</span> <span class="n">cookie</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="s2">"cookie1,cookie2"</span><span class="p">);</span> <span class="c1"># get_string() will now yield "cookie3=value3"</span> <span class="p">}</span> </pre></div> </div> </section> <section id="void-filter-re-regex-expression"> <span id="cookie-filter-re"></span><h3>VOID filter_re(REGEX expression)<a class="headerlink" href="#void-filter-re-regex-expression" title="Link to this heading">¶</a></h3> <p>Delete all cookies from internal vmod storage that matches the regular expression <code class="docutils literal notranslate"><span class="pre">expression</span></code>.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2; cookie3=value3"</span><span class="p">);</span> <span class="n">cookie</span><span class="o">.</span><span class="n">filter_re</span><span class="p">(</span><span class="s2">"^cookie[12]$"</span><span class="p">);</span> <span class="c1"># get_string() will now yield "cookie3=value3"</span> <span class="p">}</span> </pre></div> </div> </section> <section id="void-keep-string-filterstring"> <span id="cookie-keep"></span><h3>VOID keep(STRING filterstring)<a class="headerlink" href="#void-keep-string-filterstring" title="Link to this heading">¶</a></h3> <p>Delete all cookies from internal vmod storage that is not in the comma-separated argument cookienames.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2; cookie3=value3"</span><span class="p">);</span> <span class="n">cookie</span><span class="o">.</span><span class="n">keep</span><span class="p">(</span><span class="s2">"cookie1,cookie2"</span><span class="p">);</span> <span class="c1"># get_string() will now yield "cookie1=value1; cookie2=value2"</span> <span class="p">}</span> </pre></div> </div> </section> <section id="void-keep-re-regex-expression"> <span id="cookie-keep-re"></span><h3>VOID keep_re(REGEX expression)<a class="headerlink" href="#void-keep-re-regex-expression" title="Link to this heading">¶</a></h3> <p>Delete all cookies from internal vmod storage that does not match expression <code class="docutils literal notranslate"><span class="pre">expression</span></code>.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2; cookie3=value3"</span><span class="p">);</span> <span class="n">cookie</span><span class="o">.</span><span class="n">keep_re</span><span class="p">(</span><span class="s2">"^cookie[12]$"</span><span class="p">);</span> <span class="c1"># get_string() will now yield "cookie1=value1; cookie2=value2"</span> <span class="p">}</span> </pre></div> </div> </section> <section id="string-format-date-time-now-duration-timedelta"> <span id="cookie-format-date"></span><h3>STRING format_date(TIME now, DURATION timedelta)<a class="headerlink" href="#string-format-date-time-now-duration-timedelta" title="Link to this heading">¶</a></h3> <p>Get a RFC1123 formatted date string suitable for inclusion in a Set-Cookie response header.</p> <p>Care should be taken if the response has multiple Set-Cookie headers. In that case the header vmod should be used.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_deliver</span> <span class="p">{</span> <span class="c1"># Set a userid cookie on the client that lives for 5 minutes.</span> <span class="nb">set</span> <span class="n">resp</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">Set</span><span class="o">-</span><span class="n">Cookie</span> <span class="o">=</span> <span class="s2">"userid="</span> <span class="o">+</span> <span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">userid</span> <span class="o">+</span> <span class="s2">"; Expires="</span> <span class="o">+</span> <span class="n">cookie</span><span class="o">.</span><span class="n">format_date</span><span class="p">(</span><span class="n">now</span><span class="p">,</span> <span class="mi">5</span><span class="n">m</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"; httpOnly"</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div> </section> <section id="string-get-string-cookiename"> <span id="cookie-get"></span><h3>STRING get(STRING cookiename)<a class="headerlink" href="#string-get-string-cookiename" title="Link to this heading">¶</a></h3> <p>Get the value of <code class="docutils literal notranslate"><span class="pre">cookiename</span></code>, as stored in internal vmod storage.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">std</span><span class="p">;</span> <span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2"</span><span class="p">);</span> <span class="n">std</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s2">"cookie1 value is: "</span> <span class="o">+</span> <span class="n">cookie</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cookie1"</span><span class="p">));</span> <span class="p">}</span> </pre></div> </div> <p>If <code class="docutils literal notranslate"><span class="pre">cookiename</span></code> does not exist, the <cite>NULL</cite> string is returned. Note that a <cite>NULL</cite> string is converted to an empty string when assigned to a header. This means that the following is correct:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="k">if</span> <span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">Cookie</span><span class="p">)</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">Cookie</span><span class="p">);</span> <span class="nb">set</span> <span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">X</span><span class="o">-</span><span class="n">tmp</span> <span class="o">=</span> <span class="n">cookie</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"a_cookie"</span><span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="nb">set</span> <span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">X</span><span class="o">-</span><span class="n">tmp</span> <span class="o">=</span> <span class="s2">""</span><span class="p">;</span> <span class="p">}</span> <span class="k">if</span> <span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">X</span><span class="o">-</span><span class="n">tmp</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">)</span> <span class="p">{</span> <span class="o">//</span> <span class="n">do</span> <span class="n">something</span> <span class="k">with</span> <span class="n">the</span> <span class="n">X</span><span class="o">-</span><span class="n">tmp</span> <span class="n">header</span><span class="o">...</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="o">//</span> <span class="n">fallback</span> <span class="n">case</span> <span class="p">}</span> </pre></div> </div> <p>However, using <cite>cookie.isset()</cite> is often a better way to check if a particular cookie is present, like this:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span>unset req.http.X-tmp; # unnecessary if no fallback is needed if (req.http.Cookie) { cookie.parse(req.http.Cookie); if (cookie.isset("a_cookie")) { set req.http.X-tmp = cookie.get("a_cookie"); # do something with the X-tmp header... } } # if necessary, do something when a_cookie is not there if (!req.http.X-tmp) { # fallback case } </pre></div> </div> </section> <section id="string-get-re-regex-expression"> <span id="cookie-get-re"></span><h3>STRING get_re(REGEX expression)<a class="headerlink" href="#string-get-re-regex-expression" title="Link to this heading">¶</a></h3> <p>Get the value of the first cookie in internal vmod storage that matches the regular expression <code class="docutils literal notranslate"><span class="pre">expression</span></code>. If nothing matches, the <cite>NULL</cite> string is returned.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">std</span><span class="p">;</span> <span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2"</span><span class="p">);</span> <span class="n">std</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s2">"cookie1 value is: "</span> <span class="o">+</span> <span class="n">cookie</span><span class="o">.</span><span class="n">get_re</span><span class="p">(</span><span class="s2">"^cookie1$"</span><span class="p">));</span> <span class="p">}</span> </pre></div> </div> </section> <section id="string-get-string"> <span id="cookie-get-string"></span><h3>STRING get_string()<a class="headerlink" href="#string-get-string" title="Link to this heading">¶</a></h3> <p>Get a Cookie string value with all cookies in internal vmod storage. Does not modify internal storage.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">cookie</span><span class="p">);</span> <span class="n">cookie</span><span class="o">.</span><span class="n">keep</span><span class="p">(</span><span class="s2">"SESSIONID,PHPSESSID"</span><span class="p">);</span> <span class="nb">set</span> <span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">cookie</span> <span class="o">=</span> <span class="n">cookie</span><span class="o">.</span><span class="n">get_string</span><span class="p">();</span> <span class="p">}</span> </pre></div> </div> </section> <section id="bool-isset-string-cookiename"> <span id="cookie-isset"></span><h3>BOOL isset(STRING cookiename)<a class="headerlink" href="#bool-isset-string-cookiename" title="Link to this heading">¶</a></h3> <p>Check if <code class="docutils literal notranslate"><span class="pre">cookiename</span></code> is set in the internal vmod storage.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">std</span><span class="p">;</span> <span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="s2">"cookie1=value1; cookie2=value2"</span><span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="n">cookie</span><span class="o">.</span><span class="n">isset</span><span class="p">(</span><span class="s2">"cookie2"</span><span class="p">))</span> <span class="p">{</span> <span class="n">std</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s2">"cookie2 is set."</span><span class="p">);</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </div> </section> <section id="void-parse-string-cookieheader"> <span id="cookie-parse"></span><h3>VOID parse(STRING cookieheader)<a class="headerlink" href="#void-parse-string-cookieheader" title="Link to this heading">¶</a></h3> <p>Parse the cookie string in <code class="docutils literal notranslate"><span class="pre">cookieheader</span></code>. If state already exists, <code class="docutils literal notranslate"><span class="pre">clean()</span></code> will be run first.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">req</span><span class="o">.</span><span class="n">http</span><span class="o">.</span><span class="n">Cookie</span><span class="p">);</span> <span class="p">}</span> </pre></div> </div> </section> <section id="void-set-string-cookiename-string-value"> <span id="cookie-set"></span><h3>VOID set(STRING cookiename, STRING value)<a class="headerlink" href="#void-set-string-cookiename-string-value" title="Link to this heading">¶</a></h3> <p>Set the internal vmod storage for <code class="docutils literal notranslate"><span class="pre">cookiename</span></code> to <code class="docutils literal notranslate"><span class="pre">value</span></code>.</p> <p>Example:</p> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">sub</span> <span class="n">vcl_recv</span> <span class="p">{</span> <span class="n">cookie</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cookie1"</span><span class="p">,</span> <span class="s2">"value1"</span><span class="p">);</span> <span class="n">std</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="s2">"cookie1 value is: "</span> <span class="o">+</span> <span class="n">cookie</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cookie1"</span><span class="p">));</span> <span class="p">}</span> </pre></div> </div> </section> </section> <section id="deprecated"> <h2>DEPRECATED<a class="headerlink" href="#deprecated" title="Link to this heading">¶</a></h2> <section id="alias-format-rfc1123"> <h3>ALIAS format_rfc1123()<a class="headerlink" href="#alias-format-rfc1123" title="Link to this heading">¶</a></h3> <p>Deprecated alias for <code class="docutils literal notranslate"><span class="pre">format_date()</span></code>.</p> </section> </section> <section id="copyright"> <h2>COPYRIGHT<a class="headerlink" href="#copyright" title="Link to this heading">¶</a></h2> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">This</span> <span class="n">document</span> <span class="ow">is</span> <span class="n">licensed</span> <span class="n">under</span> <span class="n">the</span> <span class="n">same</span> <span class="n">conditions</span> <span class="k">as</span> <span class="n">Varnish</span> <span class="n">itself</span><span class="o">.</span> <span class="n">See</span> <span class="n">LICENSE</span> <span class="k">for</span> <span class="n">details</span><span class="o">.</span> <span class="n">SPDX</span><span class="o">-</span><span class="n">License</span><span class="o">-</span><span class="n">Identifier</span><span class="p">:</span> <span class="n">BSD</span><span class="o">-</span><span class="mi">2</span><span class="o">-</span><span class="n">Clause</span> </pre></div> </div> </section> </section> <div class="clearer"></div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <div> <h3><a href="../index.html">Table of Contents</a></h3> <ul> <li><a class="reference internal" href="#">VMOD cookie - Varnish Cookie Module</a></li> </ul> </div> <div> <h4>Previous topic</h4> <p class="topless"><a href="vmod_blob.html" title="previous chapter">VMOD blob - Utilities for the VCL blob type, encoding and decoding</a></p> </div> <div> <h4>Next topic</h4> <p class="topless"><a href="vmod_directors.html" title="next chapter">VMOD directors - Varnish Directors Module</a></p> </div> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/reference/vmod_cookie.rst.txt" rel="nofollow">Show Source</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3 id="searchlabel">Quick search</h3> <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/> <input type="submit" value="Go" /> </form> </div> </div> <script>document.getElementById('searchbox').style.display = "block"</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="vmod_directors.html" title="VMOD directors - Varnish Directors Module" >next</a> |</li> <li class="right" > <a href="vmod_blob.html" title="VMOD blob - Utilities for the VCL blob type, encoding and decoding" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Varnish version 7.5.0 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" >The Varnish Reference Manual</a> »</li> <li class="nav-item nav-item-this"><a href="">VMOD cookie - Varnish Cookie Module</a></li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2010-2014, Varnish Software AS. Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.2.6. </div> </body> </html>