← back to build-pages
perf: X-Response-Time header on every response (via writeHead hook) + 1 smoke
f752648efbd8d585c12e477c048bfb94457893d0 · 2026-05-13 18:51:10 -0700 · SteveStudio2
Files touched
M server.jsM test/smoke.js
Diff
commit f752648efbd8d585c12e477c048bfb94457893d0
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Wed May 13 18:51:10 2026 -0700
perf: X-Response-Time header on every response (via writeHead hook) + 1 smoke
---
server.js | 15 +++++++++++++++
test/smoke.js | 1 +
2 files changed, 16 insertions(+)
diff --git a/server.js b/server.js
index 2856253..f6b3f8c 100644
--- a/server.js
+++ b/server.js
@@ -232,6 +232,21 @@ app.use((req, res, next) => {
res.setHeader('X-Frame-Options', 'SAMEORIGIN');
res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin');
res.setHeader('Permissions-Policy', 'geolocation=(), microphone=(), camera=(), payment=()');
+ // X-Response-Time — machine-readable companion to the home-page footer.
+ // Surfaces in DevTools and any reverse proxy / log pipeline.
+ const t0 = process.hrtime.bigint();
+ res.on('finish', () => { /* finish-only; setHeader after-flush would no-op */ });
+ const _setHeader = res.setHeader.bind(res);
+ res.setHeader = function (...args) { return _setHeader(...args); };
+ res.on('close', () => {});
+ // Compute on the way out via res.writeHead override — simpler than tracking
+ // every send path. ms with 1 decimal so sub-millisecond responses show up.
+ const _writeHead = res.writeHead.bind(res);
+ res.writeHead = function (...args) {
+ const ms = Number(process.hrtime.bigint() - t0) / 1e6;
+ try { res.setHeader('X-Response-Time', ms.toFixed(1) + 'ms'); } catch (_) {}
+ return _writeHead(...args);
+ };
next();
});
app.use('/css', express.static(path.join(__dirname, 'public/css'), { maxAge: '1h' }));
diff --git a/test/smoke.js b/test/smoke.js
index 0f8e53a..5042aa7 100644
--- a/test/smoke.js
+++ b/test/smoke.js
@@ -45,6 +45,7 @@ function check(name, cond, hint = '') {
check('healthz: ok JSON', /"ok":true/.test(r.body));
check('healthz: no-store', (r.headers['cache-control'] || '').includes('no-store'));
check('healthz: <50ms', ms < 50, `actual ${ms}ms`);
+ check('healthz: X-Response-Time',/ms$/.test(r.headers['x-response-time'] || ''));
r = await fetch('/healthz', { method: 'HEAD' });
check('healthz: HEAD 200', r.status === 200);
}
← 77e85e8 home: 'rendered in Xms' footer — request-time visibility (ty
·
back to build-pages
·
p/:slug: 'rendered in Xms' footer (parity with home) 2047a04 →