|
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 } |