如何使用http-server为代理返回的响应添加特定响应头?
为http-server代理响应添加自定义标记头
要给代理返回的响应添加区分用的响应头,你可以利用http-server内部依赖的http-proxy模块的事件监听功能,具体操作如下:
- 获取http-server实例内部的代理对象
- 监听代理的*
proxyRes*事件,在该事件中为响应添加自定义头
修改后的完整代码如下:
const httpServer = require('http-server'); const server = httpServer.createServer({ gzip: true, proxy: 'https://proxy.target.url', https: { key: './key.pem', cert: './cert.pem' }, }); // 获取服务器内部的proxy实例 const proxy = server.proxy; // 监听代理响应完成事件,添加自定义标记头 proxy.on('proxyRes', (proxyRes, req, res) => { // 自定义响应头,标记此响应来自代理 res.setHeader('X-Response-Source', 'proxy'); }); // 启动服务器(根据需求修改端口) server.listen(8080, () => { console.log('Server running on https://localhost:8080'); });
关键说明
- *
proxyRes*事件会在代理服务器返回响应后、http-server将响应转发给客户端前触发,此时可以安全修改响应头 - 自定义头的名称可以按需调整,比如改成
X-Proxy-Origin这类更贴合你业务的命名 - 本地直接返回的响应不会触发该事件,因此不会带有这个标记头,以此就能清晰区分响应来源
内容的提问来源于stack exchange,提问作者Mahesh Bansod
相关产品推荐
相关产品推荐

