技术文摘
Node.js 设置响应头
Node.js 设置响应头
在Node.js开发中,设置响应头是一项关键任务,它对应用程序的功能和性能有着重要影响。响应头用于向客户端传递关于响应的额外信息,比如内容类型、缓存策略、安全设置等。
我们使用Node.js内置的http模块来设置响应头。以下是一个简单示例:
const http = require('http');
const server = http.createServer((req, res) => {
// 设置单个响应头
res.setHeader('Content-Type', 'text/plain');
// 设置多个响应头
res.setHeader('Set-Cookie', ['name1=value1', 'name2=value2']);
res.end('Hello, World!');
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
在上述代码中,res.setHeader方法用于设置响应头。第一个参数是头的名称,第二个参数是头的值。如果要设置多个相同类型的头,可以多次调用该方法,或者像设置Set - Cookie那样传递一个数组。
设置内容类型的响应头尤为重要。例如,当返回JSON数据时,应将Content - Type设置为application/json:
const http = require('http');
const server = http.createServer((req, res) => {
res.setHeader('Content-Type', 'application/json');
const data = { message: 'This is JSON data' };
res.end(JSON.stringify(data));
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
这样,客户端就能正确解析接收到的数据格式。
缓存策略也可以通过响应头来控制。例如,设置Cache - Control头可以指定缓存的时间和规则:
const http = require('http');
const server = http.createServer((req, res) => {
res.setHeader('Cache-Control', 'public, max - age = 3600');
res.end('This response can be cached for an hour');
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
上述代码表示响应可以被公共缓存,且缓存有效期为3600秒。
安全相关的响应头也不容忽视。比如设置Content - Security - Policy头可以增强应用的安全性,防止跨站脚本攻击(XSS):
const http = require('http');
const server = http.createServer((req, res) => {
res.setHeader('Content - Security - Policy', "default - src'self'");
res.end('A secure response');
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
通过合理设置响应头,能够提升Node.js应用的性能、安全性和兼容性,为用户提供更好的服务体验。无论是简单的小型应用,还是复杂的大型项目,正确运用响应头设置都是开发者需要掌握的重要技能。
TAGS: Node.js Node.js响应头设置 响应头 设置响应头