michael@0: function handleRequest(request, response) michael@0: { michael@0: function etag(count) { michael@0: return '"anetag' + count + '"'; michael@0: } michael@0: michael@0: var count = parseInt(getState('count')); michael@0: if (!count) michael@0: count = 0; michael@0: michael@0: // reload(false) will make a request with If-None-Match headers michael@0: var ifNoneMatch = request.hasHeader("If-None-Match") ? michael@0: request.getHeader("If-None-Match") : ""; michael@0: michael@0: if (ifNoneMatch === etag(count)) { michael@0: response.setStatusLine(request.httpVersion, "304", "Not Modified"); michael@0: return; michael@0: } michael@0: michael@0: count++; michael@0: setState('count', count + ''); michael@0: michael@0: response.setHeader('Content-Type', 'text/html', false); michael@0: response.setHeader('Cache-Control', 'public, max-age=3600', false); michael@0: response.setHeader("ETag", etag(count), false); michael@0: response.write('' + count + ''); michael@0: }