Node.js 设置响应头

2025-01-10 19:14:41   小编

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响应头设置 响应头 设置响应头

欢迎使用万千站长工具!

Welcome to www.zzTool.com