bug475156.sjs (796B)
1 function handleRequest(request, response) { 2 if (request.queryString == "") { 3 var etag = request.hasHeader("If-Match") 4 ? request.getHeader("If-Match") 5 : null; 6 if (!etag || etag == getState("etag")) { 7 response.setStatusLine(request.httpVersion, 200, "Ok"); 8 response.setHeader("Content-Type", "text/html"); 9 response.setHeader("ETag", getState("etag")); 10 response.setHeader("Cache-control", "max-age=36000"); 11 response.write(getState("etag")); 12 } else if (etag) { 13 response.setStatusLine(request.httpVersion, 412, "Precondition Failed"); 14 } 15 } else { 16 var etag = request.queryString.match(/^etag=(.*)$/); 17 if (etag) { 18 setState("etag", etag[1]); 19 } 20 21 response.setStatusLine(request.httpVersion, 204, "No content"); 22 } 23 }