

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Caching Proxies &mdash; Traffic Control 1.2.1 documentation </title>
  

  
  
    <link rel="shortcut icon" href="../_static/favicon.ico"/>
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  

  
    <link rel="stylesheet" href="../_static/theme_overrides.css" type="text/css" />
  

  
    <link rel="top" title="Traffic Control 1.2.1 documentation" href="../index.html"/>
        <link rel="up" title="CDN Basics" href="index.html"/>
        <link rel="next" title="Cache Control Headers and Revalidation" href="cache_revalidation.html"/>
        <link rel="prev" title="HTTP 1.1" href="http_11.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-nav-search">
        

        
          <a href="/" class="icon icon-home"> Traffic Control
        

        
          
          <img src="../_static/tc_logo.png" class="logo" />
        
        </a>

        
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

        
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
        
          
          
              <ul class="current">
<li class="toctree-l1 current"><a class="reference internal" href="index.html">CDN Basics</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="content_delivery_networks.html">Content Delivery Networks</a></li>
<li class="toctree-l2"><a class="reference internal" href="http_11.html">HTTP 1.1</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="">Caching Proxies</a></li>
<li class="toctree-l2"><a class="reference internal" href="cache_revalidation.html">Cache Control Headers and Revalidation</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../overview/index.html">Traffic Control Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../overview/introduction.html">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../overview/traffic_ops.html">Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../overview/traffic_router.html">Traffic Router</a></li>
<li class="toctree-l2"><a class="reference internal" href="../overview/traffic_monitor.html">Traffic Monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../overview/traffic_stats.html">Traffic Stats</a></li>
<li class="toctree-l2"><a class="reference internal" href="../overview/traffic_portal.html">Traffic Portal</a></li>
<li class="toctree-l2"><a class="reference internal" href="../overview/traffic_server.html">Traffic Server</a></li>
<li class="toctree-l2"><a class="reference internal" href="../overview/traffic_vault.html">Traffic Vault</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin/index.html">Administrator&#8217;s Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_ops_install.html">Installing Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_ops_config.html">Configuring Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_ops_using.html">Using Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_ops_extensions.html">Managing Traffic Ops Extensions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_monitor.html">Traffic Monitor Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_router.html">Traffic Router Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_stats.html">Traffic Stats Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_server.html">Traffic Server Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/traffic_vault.html">Traffic Vault Administration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/quick_howto/index.html">Quick How To Guides</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../development/index.html">Developer&#8217;s Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../development/traffic_ops.html">Traffic Ops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../development/traffic_router.html">Traffic Router</a></li>
<li class="toctree-l2"><a class="reference internal" href="../development/traffic_monitor.html">Traffic Monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="../development/traffic_stats.html">Traffic Stats</a></li>
<li class="toctree-l2"><a class="reference internal" href="../development/traffic_server.html">Traffic Server</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../faq/index.html">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../faq/general.html">General</a></li>
<li class="toctree-l2"><a class="reference internal" href="../faq/development.html">Development</a></li>
<li class="toctree-l2"><a class="reference internal" href="../faq/administration.html">Running a Traffic Control CDN</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
</ul>

          
        
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="../index.html">Traffic Control</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="../index.html">Traffic Control 1.2.1</a> &raquo;</li>
      
          <li><a href="index.html">CDN Basics</a> &raquo;</li>
      
    <li>Caching Proxies</li>
      <li class="wy-breadcrumbs-aside">
        
          <a href="../_sources/basics/caching_proxies.txt" rel="nofollow"> View page source</a>
        
      </li>
  </ul>
  <hr/>
</div>
 		  
    		  <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      		  
        		  <a href="cache_revalidation.html" class="btn btn-neutral float-right" title="Cache Control Headers and Revalidation">Next <span class="fa fa-arrow-circle-right"></span></a>
      		  
      		  
        		  <a href="http_11.html" class="btn btn-neutral" title="HTTP 1.1"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      		  
    		  </div>
  		  
          <div role="main" class="document">
            
  <div class="section" id="caching-proxies">
<span id="rl-caching-proxy"></span><h1>Caching Proxies<a class="headerlink" href="#caching-proxies" title="Permalink to this headline">¶</a></h1>
<p>The main function of a CDN is to proxy requests from clients to origin servers
and cache the results.
To proxy, in the CDN context, is to obtain content using HTTP from an origin
server on behalf of a client. To cache is to store the results so they can be
reused when other clients are requesting the same content. There are three
types of proxies in use on the Internet today which are described below.</p>
<div class="section" id="arrow-reverse-proxy">
<span id="rl-rev-proxy"></span><span id="index-0"></span><h2><img alt="arrow" src="../_images/fwda.png" /> Reverse Proxy<a class="headerlink" href="#arrow-reverse-proxy" title="Permalink to this headline">¶</a></h2>
<blockquote>
<div>A reverse proxy acts on behalf of the origin server. The client is mostly unaware it is communicating with a proxy and not the actual origin.
All EDGE caches in a Traffic Control CDN are reverse proxies.
To the end user a Traffic Control based CDN appears as a reverse proxy since
it retrieves content from the origin server, acting on behalf of that origin server. The client requests a URL that has
a hostname which resolves to the reverse proxy&#8217;s IP address and, in compliance
with the HTTP 1.1 specification, the client sends a <code class="docutils literal"><span class="pre">Host:</span></code> header to the reverse
proxy including the hostname in the URL. The proxy looks up the hostname in a
list of mappings to find the origin hostname; if the origin hostname is not found in the list, the proxy connects to the
origin host and requests the path of the original URL.  The proxy then stores the URL in cache and serves the contents to the client. When there are subsequent requests for
the same URL, a caching proxy serves the content out of cache thereby reducing
latency and network traffic.</div></blockquote>
<div class="admonition seealso">
<p class="first admonition-title">See also</p>
<p class="last"><a class="reference external" href="https://docs.trafficserver.apache.org/en/latest/admin/reverse-proxy-http-redirects.en.html#http-reverse-proxy">ATS documentation on reverse proxy</a>.</p>
</div>
<p>To insert a reverse proxy into the previous HTTP 1.1 example, the reverse proxy requires provisioning
for <code class="docutils literal"><span class="pre">www.origin.com</span></code>. By adding a remap rule to the cache, the reverse proxy then maps requests to
this origin. The content owner must inform the clients, by updating the URL, to receive the content
from the cache and not from the origin server directly. For this example, the remap rule on the
cache is: <code class="docutils literal"><span class="pre">http://www-origin-cache.cdn.com</span> <span class="pre">http://www.origin.com</span></code>.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">In the previous example minimal headers were shown on both the request and response. In the examples that follow, the origin server response is more realistic.</p>
</div>
<div class="highlight-python"><div class="highlight"><pre>HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: &quot;1aa008f-2d-50a3559482cc0&quot;
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8

&lt;html&gt;&lt;body&gt;This is a fun file&lt;/body&gt;&lt;/html&gt;
</pre></div>
</div>
<p>The client is given the URL <code class="docutils literal"><span class="pre">http://www-origin-cache.cdn.com/foo/bar/fun.html</span></code> (note the different hostname) and when attempting to obtain that URL, the following occurs:</p>
<ol class="arabic">
<li><p class="first">The client sends a request to the LDNS server to resolve the name <code class="docutils literal"><span class="pre">www-origin-cache.cdn.com</span></code> to an IPv4 address.</p>
</li>
<li><p class="first">Similar to the previous case, the LDNS server resolves the name <code class="docutils literal"><span class="pre">www-origin-cache.cdn.com</span></code> to an IPv4 address, in this example, this address is 55.44.33.22.</p>
</li>
<li><p class="first">The client opens a TCP connection from a random port locally, to port 80 (the HTTP default) on 55.44.33.22, and sends the following:</p>
<div class="highlight-python"><div class="highlight"><pre>GET /foo/bar/fun.html HTTP/1.1
Host: www-origin-cache.cdn.com
</pre></div>
</div>
</li>
<li><p class="first">The reverse proxy looks up <code class="docutils literal"><span class="pre">www-origin-cache.cdn.com</span></code> in its remap rules, and finds the origin is <code class="docutils literal"><span class="pre">www.origin.com</span></code>.</p>
</li>
<li><p class="first">The proxy checks its cache to see if the response for <code class="docutils literal"><span class="pre">http://www-origin-cache.cdn.com/foo/bar/fun.html</span></code> is already in the cache.</p>
</li>
</ol>
<p>6a. If the response is not in the cache:</p>
<blockquote>
<div><ol class="arabic">
<li><p class="first">The proxy uses DNS to get the IPv4 address for <code class="docutils literal"><span class="pre">www.origin.com</span></code>, connect to it on port 80, and sends:</p>
<div class="highlight-python"><div class="highlight"><pre>GET /foo/bar/fun.html HTTP/1.1
Host: www.origin.com
</pre></div>
</div>
</li>
<li><p class="first">The origin server responds with the headers and content as shown:</p>
<div class="highlight-python"><div class="highlight"><pre>HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: &quot;1aa008f-2d-50a3559482cc0&quot;
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8

&lt;html&gt;&lt;body&gt;This is a fun file&lt;/body&gt;&lt;/html&gt;
</pre></div>
</div>
</li>
<li><p class="first">The proxy sends the origin response on to the client adding a <code class="docutils literal"><span class="pre">Via:</span></code> header (and maybe others):</p>
<div class="highlight-python"><div class="highlight"><pre>HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: &quot;1aa008f-2d-50a3559482cc0&quot;
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8
Age: 0
Via: http/1.1 cache01.cdn.kabletown.net (ApacheTrafficServer/4.2.1 [uScSsSfUpSeN:t cCSi p sS])
Server: ATS/4.2.1

  &lt;html&gt;&lt;body&gt;This is a fun file&lt;/body&gt;&lt;/html&gt;
</pre></div>
</div>
</li>
</ol>
</div></blockquote>
<p>6b. If it <em>is</em> in the cache:</p>
<blockquote>
<div><p>The proxy responds to the client with the previously retrieved result:</p>
<div class="highlight-python"><div class="highlight"><pre>HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: &quot;1aa008f-2d-50a3559482cc0&quot;
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8
Age: 39711
Via: http/1.1 cache01.cdn.kabletown.net (ApacheTrafficServer/4.2.1 [uScSsSfUpSeN:t cCSi p sS])
Server: ATS/4.2.1

&lt;html&gt;&lt;body&gt;This is a fun file&lt;/body&gt;&lt;/html&gt;
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="arrow-forward-proxy">
<span id="rl-fwd-proxy"></span><span id="index-1"></span><h2><img alt="arrow" src="../_images/fwda.png" /> Forward Proxy<a class="headerlink" href="#arrow-forward-proxy" title="Permalink to this headline">¶</a></h2>
<blockquote>
<div>A forward proxy acts on behalf of the client. The origin server is mostly
unaware of the proxy, the client requests the proxy to retrieve content from a
particular origin server. All MID caches in a Traffic Control based CDN are
forward proxies. In a forward proxy scenario, the client configuration is with
the proxy&#8217;s IP address and port. The client always connects to the forward
proxy for content. The content provider does not have to change the URL the
client obtains, and is unaware of the proxy in the middle.</div></blockquote>
<div class="admonition seealso">
<p class="first admonition-title">See also</p>
<p class="last"><a class="reference external" href="https://docs.trafficserver.apache.org/en/latest/admin/forward-proxy.en.html">ATS documentation on forward proxy</a>.</p>
</div>
<p>Below is an example of the client retrieving the URL <code class="docutils literal"><span class="pre">http://www.origin.com/foo/bar/fun.html</span></code> through a forward proxy:</p>
<ol class="arabic simple">
<li>The client requires configuration to use the proxy, as opposed to the reverse proxy example. Assume the client configuration is through preferences entries or other to use the proxy IP address 99.88.77.66 and proxy port 8080.</li>
<li>To retrieve <code class="docutils literal"><span class="pre">http://www.origin.com/foo/bar/fun.html</span></code> URL, the client connects to 99.88.77.66 on port 8080 and sends:</li>
</ol>
<blockquote>
<div><div class="highlight-python"><div class="highlight"><pre>GET http://www.origin.com/foo/bar/fun.html HTTP/1.1
</pre></div>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">In this case, the client places the entire URL after GET, including protocol and hostname (<code class="docutils literal"><span class="pre">http://www.origin.com</span></code>),  but in the reverse proxy and direct-to-origin case it  puts only the path portion of the URL (<code class="docutils literal"><span class="pre">/foo/bar/fun.html</span></code>) after the GET.</p>
</div>
</div></blockquote>
<ol class="arabic simple" start="3">
<li>The proxy verifies whether the response for <code class="docutils literal"><span class="pre">http://www-origin-cache.cdn.com/foo/bar/fun.html</span></code> is already in the cache.</li>
</ol>
<p>4a. If it is not in the cache:</p>
<blockquote>
<div><ol class="arabic">
<li><p class="first">The proxy uses DNS to obtain the IPv4 address for <code class="docutils literal"><span class="pre">www.origin.com</span></code>, connects to it on port 80, and sends:</p>
<div class="highlight-python"><div class="highlight"><pre>GET /foo/bar/fun.html HTTP/1.1
Host: www.origin.com
</pre></div>
</div>
</li>
<li><p class="first">The origin server responds with the headers and content as shown below:</p>
<div class="highlight-python"><div class="highlight"><pre>HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: &quot;1aa008f-2d-50a3559482cc0&quot;
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8

&lt;html&gt;&lt;body&gt;This is a fun file&lt;/body&gt;&lt;/html&gt;
</pre></div>
</div>
</li>
<li><p class="first">The proxy sends this on to the client adding a <code class="docutils literal"><span class="pre">Via:</span></code> header (and maybe others):</p>
<div class="highlight-python"><div class="highlight"><pre>HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: &quot;1aa008f-2d-50a3559482cc0&quot;
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8
Age: 0
Via: http/1.1 cache01.cdn.kabletown.net (ApacheTrafficServer/4.2.1 [uScSsSfUpSeN:t cCSi p sS])
Server: ATS/4.2.1

&lt;html&gt;&lt;body&gt;This is a fun file&lt;/body&gt;&lt;/html&gt;
</pre></div>
</div>
</li>
</ol>
</div></blockquote>
<p>4b. If it <em>is</em> in the cache:</p>
<blockquote>
<div><p>The proxy responds to the client with the previously retrieved result:</p>
<div class="highlight-python"><div class="highlight"><pre>HTTP/1.1 200 OK
Date: Sun, 14 Dec 2014 23:22:44 GMT
Last-Modified: Sun, 14 Dec 2014 23:18:51 GMT
ETag: &quot;1aa008f-2d-50a3559482cc0&quot;
Content-Length: 45
Connection: close
Content-Type: text/html; charset=UTF-8
Age: 99711
Via: http/1.1 cache01.cdn.kabletown.net (ApacheTrafficServer/4.2.1 [uScSsSfUpSeN:t cCSi p sS])
Server: ATS/4.2.1

&lt;html&gt;&lt;body&gt;This is a fun file&lt;/body&gt;&lt;/html&gt;
</pre></div>
</div>
</div></blockquote>
</div>
<div class="section" id="arrow-transparent-proxy">
<span id="index-2"></span><h2><img alt="arrow" src="../_images/fwda.png" /> Transparent Proxy<a class="headerlink" href="#arrow-transparent-proxy" title="Permalink to this headline">¶</a></h2>
<blockquote>
<div>Neither the origin nor the client are aware of the actions performed by the transparent proxies. A Traffic Control based CDN does not use transparent proxies.   If you are interested you can learn more about transparent proxies on <a class="reference external" href="http://en.wikipedia.org/wiki/Proxy_server#Transparent_proxy">wikipedia</a>.</div></blockquote>
</div>
</div>


          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="cache_revalidation.html" class="btn btn-neutral float-right" title="Cache Control Headers and Revalidation">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="http_11.html" class="btn btn-neutral" title="HTTP 1.1"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../',
            VERSION:'1.2.1',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </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>

  

  
  
    <script type="text/javascript" src="../_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>