| |
1 function handleRequest(request, response) |
| |
2 { |
| |
3 function etag(count) { |
| |
4 return '"anetag' + count + '"'; |
| |
5 } |
| |
6 |
| |
7 var count = parseInt(getState('count')); |
| |
8 if (!count) |
| |
9 count = 0; |
| |
10 |
| |
11 // reload(false) will make a request with If-None-Match headers |
| |
12 var ifNoneMatch = request.hasHeader("If-None-Match") ? |
| |
13 request.getHeader("If-None-Match") : ""; |
| |
14 |
| |
15 if (ifNoneMatch === etag(count)) { |
| |
16 response.setStatusLine(request.httpVersion, "304", "Not Modified"); |
| |
17 return; |
| |
18 } |
| |
19 |
| |
20 count++; |
| |
21 setState('count', count + ''); |
| |
22 |
| |
23 response.setHeader('Content-Type', 'text/html', false); |
| |
24 response.setHeader('Cache-Control', 'public, max-age=3600', false); |
| |
25 response.setHeader("ETag", etag(count), false); |
| |
26 response.write('<html><body>' + count + '</body></html>'); |
| |
27 } |