File: //proc/self/root/proc/thread-self/root/usr/share/doc/varnish-6.0.3/html/reference/states.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Varnish Processing States — Varnish version 6.0.3 documentation</title>
<link rel="stylesheet" href="../_static/classic.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="varnish-cli" href="varnish-cli.html" />
<link rel="prev" title="VCL" href="vcl.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="varnish-cli.html" title="varnish-cli"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="vcl.html" title="VCL"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Varnish version 6.0.3 documentation</a> »</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">The Varnish Reference Manual</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="varnish-processing-states">
<span id="reference-states"></span><h1>Varnish Processing States<a class="headerlink" href="#varnish-processing-states" title="Permalink to this headline">¶</a></h1>
<div class="section" id="introduction">
<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h2>
<p>Varnish processing of client and backend requests is implemented as
state machines. Whenever a state is entered, a C function is called,
which in turn calls the appropriate Varnish core code functions to
process the request or response at this stage. For most states, core
code also calls into a state-specific function compiled from VCL, a
VCL subroutine (see <a class="reference internal" href="../users-guide/vcl-built-in-subs.html#vcl-built-in-subs"><span class="std std-ref">Built in subroutines</span></a> ).</p>
<p>As a general guideline, core code aims to prepare objects accessible
from VCL with good defaults for the most common cases before calling
into the respective VCL subroutine. These can then be modified from
VCL where necessary.</p>
<p>The following graphs attempt to provide an overview over the
processing states, their transitions and the most relevant functions
in core code. They represent a compromise between usefulness for
core/VMOD developers and administrators and are intended to serve as
the reference basis for derivative work, such as more VCL-centric
views.</p>
</div>
<div class="section" id="client-side">
<h2>Client Side<a class="headerlink" href="#client-side" title="Permalink to this headline">¶</a></h2>
<img alt="../_images/cache_req_fsm.svg" src="../_images/cache_req_fsm.svg" /></div>
<div class="section" id="backend-side">
<h2>Backend Side<a class="headerlink" href="#backend-side" title="Permalink to this headline">¶</a></h2>
<img alt="../_images/cache_fetch.svg" src="../_images/cache_fetch.svg" /></div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h3><a href="../index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Varnish Processing States</a><ul>
<li><a class="reference internal" href="#introduction">Introduction</a></li>
<li><a class="reference internal" href="#client-side">Client Side</a></li>
<li><a class="reference internal" href="#backend-side">Backend Side</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="vcl.html"
title="previous chapter">VCL</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="varnish-cli.html"
title="next chapter">varnish-cli</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/reference/states.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</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="varnish-cli.html" title="varnish-cli"
>next</a> |</li>
<li class="right" >
<a href="vcl.html" title="VCL"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Varnish version 6.0.3 documentation</a> »</li>
<li class="nav-item nav-item-1"><a href="index.html" >The Varnish Reference Manual</a> »</li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2010-2014, Varnish Software AS.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.7.6.
</div>
</body>
</html>