summaryrefslogtreecommitdiff
path: root/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
diff options
context:
space:
mode:
authorCraig Andrews <candrews@integralblue.com>2009-12-04 18:44:26 -0500
committerCraig Andrews <candrews@integralblue.com>2009-12-04 18:44:26 -0500
commitaab7344002fd390e5b62a3eb82f3a418fd294617 (patch)
treeb214e7d4b3e9f0ca9818fea9e3d9efa0249c00c6 /plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
parent1fd7e5e3794621993b01a5833faa8b6fa26c3847 (diff)
parent01b089d9be046db1253cb3bb90e8635b50fddd84 (diff)
Merge branch 'minify' into 0.9.x
Diffstat (limited to 'plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php')
-rw-r--r--plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php64
1 files changed, 64 insertions, 0 deletions
diff --git a/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
new file mode 100644
index 000000000..9b65ae12e
--- /dev/null
+++ b/plugins/Minify/extlib/minify/min_unit_tests/HTTP_ConditionalGet/_include.php
@@ -0,0 +1,64 @@
+<?php
+
+function send_slowly($content)
+{
+ $half = ceil(strlen($content) / 2);
+ $content = str_split($content, $half);
+ while ($chunk = array_shift($content)) {
+ sleep(1);
+ echo $chunk;
+ ob_get_level() && ob_flush();
+ flush();
+ }
+}
+
+function get_content($data)
+{
+ ob_start();
+?>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>HTTP_ConditionalGet : <?php echo $data['title']; ?></title>
+</head>
+<body>
+<h1>HTTP_ConditionalGet</h1>
+<h2><?php echo $data['title']; ?></h2>
+<?php echo $data['explain']; ?>
+<ul>
+ <li><a href="./">Last-Modified is known : simple usage</a></li>
+ <li><a href="2.php">Last-Modified is known : add Content-Length</a></li>
+ <li><a href="3.php">Last-Modified is unknown : use hash of content for ETag</a></li>
+ <li><a href="4.php">ConditionalGet + Encoder</a></li>
+ <li><a href="5.php">Last-Modified + Expires</a></li>
+</ul>
+<h2>Notes</h2>
+<h3>How to distinguish 200 and 304 responses</h3>
+<p>For these pages all 200 responses are sent in chunks a second apart, so you
+should notice that 304 responses are quicker. You can also use HTTP sniffers
+like <a href="http://www.fiddlertool.com/">Fiddler (win)</a> and
+<a href="http://livehttpheaders.mozdev.org/">LiveHTTPHeaders (Firefox add-on)</a>
+to verify headers and content being sent.</p>
+<h3>Browser notes</h3>
+<dl>
+ <dt>Opera</dt>
+ <dd>Opera has a couple behaviors against the HTTP spec: Manual refreshes (F5)
+ prevents the ETag/If-Modified-Since headers from being sent; it only sends
+ them when following a link or bookmark. Also, Opera will not honor the
+ <code>must-revalidate</code> Cache-Control value unless <code>max-age</code>
+ is set. To get Opera to follow the spec, ConditionalGet will send Opera max-age=0
+ (if one is not already set).</dd>
+ <dt>Safari</dt>
+ <dd>ETag validation is unsupported, but Safari supports HTTP/1.0 validation via
+ If-Modified-Since headers as long as the cache is explicitly marked
+ "public" or "private" ("private" is default in ConditionalGet).</dd>
+</dl>
+</body>
+</html>
+<?php
+ $content = ob_get_contents();
+ ob_end_clean();
+ return $content;
+}
+