/usr/share/polipo/www/doc/Tweaking-validation.html is in polipo 1.1.1-7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 2003 - 2014 by Juliusz Chroboczek. -->
<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ -->
<head>
<title>The Polipo Manual: Tweaking validation</title>
<meta name="description" content="The Polipo Manual: Tweaking validation">
<meta name="keywords" content="The Polipo Manual: Tweaking validation">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Variable-index.html#Variable-index" rel="index" title="Variable index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Cache-transparency.html#Cache-transparency" rel="up" title="Cache transparency">
<link href="Memory-cache.html#Memory-cache" rel="next" title="Memory cache">
<link href="Tuning-validation.html#Tuning-validation" rel="prev" title="Tuning validation">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space: nowrap}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: serif; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="Tweaking-validation"></a>
<div class="header">
<p>
Previous: <a href="Tuning-validation.html#Tuning-validation" accesskey="p" rel="prev">Tuning validation</a>, Up: <a href="Cache-transparency.html#Cache-transparency" accesskey="u" rel="up">Cache transparency</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Variable-index.html#Variable-index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Further-tweaking-of-validation-behaviour"></a>
<h4 class="subsection">4.1.2 Further tweaking of validation behaviour</h4>
<a name="index-uncachable"></a>
<a name="index-vary"></a>
<a name="index-cacheIsShared"></a>
<a name="index-mindlesslyCacheVary"></a>
<a name="index-uncachableFile"></a>
<a name="index-dontCacheCookies"></a>
<a name="index-dontCacheRedirects"></a>
<a name="index-dontTrustVaryETag"></a>
<p>If <code>cacheIsShared</code> is false (it is true by default), Polipo will
ignore the server-side ‘<samp>Cache-Control</samp>’ directives ‘<samp>private</samp>’,
‘<samp>s-maxage</samp>’ and ‘<samp>proxy-must-revalidate</samp>’. This is highly
desirable behaviour when the proxy is used by just one user, but might
break some sites if the proxy is shared.
</p>
<p>When connectivity is very poor, the variable <code>relaxTransparency</code>
can be used to cause Polipo to serve stale instances under some
circumstances. If <code>relaxTransparency</code> is <code>false</code> (the
default), all stale instances are validated (see <a href="Cache-transparency.html#Cache-transparency">Cache transparency</a>), and failures to connect are reported to the client.
This is the default mode of operation of most other proxies, and the
least likely to surprise the user.
</p>
<p>If <code>relaxTransparency</code> is <code>maybe</code>, all stale instances are
still validated, but a failure to connect is only reported as an error
if no data is available in the cache. If a connection fails and stale
data is available, it is served to the client with a suitable HTTP/1.1
‘<samp>Warning</samp>’ header. Current user-agents do not provide visible
indication of such warnings, however, and this setting will typically
cause the browser to display stale data with no indication that
anything went wrong. It is useful when you are consulting a live web
site but don’t want to be bothered with failed revalidations.
</p>
<p>If <code>relaxTransparency</code> is <code>true</code>, missing data is fetched
from remote servers, but stale data are unconditionally served with no
validation. Client-side ‘<samp>Cache-Control</samp>’ directives are still
honoured, which means that you can force an end-to-end revalidation
from the browser’s interface (typically by shift-clicking on
“reload”). This setting is only useful if you have very bad network
connectivity or are consulting a very slow web site or one that
provides incorrect cache control information<a name="DOCF12" href="#FOOT12"><sup>12</sup></a> and are willing to manually revalidate pages that you suspect
are stale.
</p>
<p>If <code>mindlesslyCacheVary</code> is true, the presence of a ‘<samp>Vary</samp>’
header (which indicates that content-negotiation occurred,
see <a href="Censor-Accept_002dLanguage.html#Censor-Accept_002dLanguage">Censor Accept-Language</a>) is ignored, and cached negotiated
instances are mindlessly returned to the client. If it is false (the
default), negotiated instances are revalidated on every client
request.
</p>
<p>Unfortunately, a number of servers (most notably some versions of
Apache’s <code>mod_deflate</code> module) send objects with a ‘<samp>ETag</samp>’
header that will confuse Polipo in the presence of a ‘<samp>Vary</samp>’
header. Polipo will make a reasonable check for consistency if
‘<samp>dontTrustVaryETag</samp>’ is set to ‘<samp>maybe</samp>’ (the default); it will
systematically ignore ‘<samp>ETag</samp>’ headers on objects with ‘<samp>Vary</samp>’
headers if it is set to ‘<samp>true</samp>’.
</p>
<p>A number of websites incorrectly mark variable resources as cachable;
such issues can be worked around in polipo by manually marking given
categories of objects as uncachable. If <code>dontCacheCookies</code> is
true, all pages carrying HTTP cookies will be treated as uncachable.
If <code>dontCacheRedirects</code> is true, all redirects (301 and 302) will
be treated as uncachable. Finally, if everything else fails, a list
of uncachable URLs can be given in the file specified by
<code>uncachableFile</code>, which has the same format as the
<code>forbiddenFile</code> (see <a href="Internal-forbidden-list.html#Internal-forbidden-list">Internal forbidden list</a>). If not
specified, its location defaults to ‘<samp>~/.polipo-uncachable</samp>’ or
‘<samp>/etc/polipo/uncachable</samp>’, whichever exists.
</p>
<div class="footnote">
<hr>
<h4 class="footnotes-heading">Footnotes</h4>
<h3><a name="FOOT12" href="#DOCF12">(12)</a></h3>
<p>This is for
example the case of <code>www.microsoft.com</code>, and also of websites
generated by a popular Free content management system written in
Python.</p>
</div>
<hr>
<div class="header">
<p>
Previous: <a href="Tuning-validation.html#Tuning-validation" accesskey="p" rel="prev">Tuning validation</a>, Up: <a href="Cache-transparency.html#Cache-transparency" accesskey="u" rel="up">Cache transparency</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Variable-index.html#Variable-index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|