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