file_resource_cache_server.sjs (1764B)
1 function handleRequest(request, response) { 2 if (request.queryString == "reset") { 3 // Reset the internal state. 4 setState("redirected", ""); 5 6 response.setStatusLine(request.httpVersion, 200, "OK"); 7 response.setHeader("Content-Type", "text/plain", false); 8 const body = "reset"; 9 response.bodyOutputStream.write(body, body.length); 10 } else if ( 11 request.queryString == "redirect-cache" || 12 request.queryString == "redirect-nocache" 13 ) { 14 // Redirect to different CSS between the first and the second requests. 15 16 response.setStatusLine(request.httpVersion, 301, "Moved Permanently"); 17 if (getState("redirected")) { 18 response.setHeader( 19 "Location", 20 "file_resource_cache_server.sjs?blue", 21 false 22 ); 23 } else { 24 response.setHeader( 25 "Location", 26 "file_resource_cache_server.sjs?red", 27 false 28 ); 29 } 30 31 if (request.queryString == "redirect-nocache") { 32 response.setHeader("Cache-Control", "no-cache", false); 33 } else { 34 response.setHeader("Cache-Control", "max-age=10000", false); 35 } 36 37 setState("redirected", "1"); 38 } else if (request.queryString == "blue") { 39 response.setStatusLine(request.httpVersion, 200, "OK"); 40 response.setHeader("Cache-Control", "max-age=10000", false); 41 response.setHeader("Content-Type", "text/css", false); 42 const body = `body { color: blue; }`; 43 response.bodyOutputStream.write(body, body.length); 44 } else { 45 response.setStatusLine(request.httpVersion, 200, "OK"); 46 response.setHeader("Cache-Control", "max-age=10000", false); 47 response.setHeader("Content-Type", "text/css", false); 48 const body = `body { color: red; }`; 49 response.bodyOutputStream.write(body, body.length); 50 } 51 }