Source code
Revision control
Copy as Markdown
Other Tools
function handleRequest(request, response) {
if (request.queryString == "reset") {
setState("counter", "0");
setState("log", "");
response.setStatusLine(request.httpVersion, 200, "OK");
response.setHeader("Content-Type", "text/text", false);
const body = "reset";
response.bodyOutputStream.write(body, body.length);
return;
}
if (request.queryString == "log") {
response.setStatusLine(request.httpVersion, 200, "OK");
response.setHeader("Content-Type", "text/text", false);
const body = getState("log");
response.bodyOutputStream.write(body, body.length);
return;
}
setState("log", getState("log") + "," + request.queryString);
let counter = parseInt(getState("counter"));
setState("counter", (counter + 1).toString());
response.setStatusLine(request.httpVersion, 200, "OK");
response.setHeader("Cache-Control", "max-age=10000", false);
if (request.queryString == "vary") {
response.setHeader("Vary", "Cookie", false);
}
response.setHeader("Content-Type", "text/javascript", false);
const body = `
document.body.setAttribute("counter", "${counter}");
document.cookie = "${counter}";
`;
response.bodyOutputStream.write(body, body.length);
}