推荐答案
设置 Cookie
在 Node.js 中,可以使用 http 模块的 setHeader 方法来设置 Cookie。以下是一个示例:
// www.javascriptcn.com code example
const http = require('http');
http.createServer((req, res) => {
// 设置 Cookie
res.setHeader('Set-Cookie', ['user=JohnDoe; Max-Age=3600; HttpOnly', 'session=abc123; Secure']);
res.end('Cookie has been set!');
}).listen(3000, () => {
console.log('Server running on port 3000');
});获取 Cookie
要获取客户端发送的 Cookie,可以从请求头中解析 Cookie 字段:
// www.javascriptcn.com code example
const http = require('http');
http.createServer((req, res) => {
// 获取 Cookie
const cookies = req.headers.cookie;
console.log(cookies); // 输出: user=JohnDoe; session=abc123
res.end('Cookies received!');
}).listen(3000, () => {
console.log('Server running on port 3000');
});本题详细解读
设置 Cookie
在 HTTP 响应中,Set-Cookie 头部用于设置 Cookie。每个 Set-Cookie 头部可以包含多个属性,如 Max-Age、HttpOnly、Secure 等。这些属性用于控制 Cookie 的行为:
Max-Age:指定 Cookie 的有效期(以秒为单位)。HttpOnly:防止客户端脚本访问 Cookie,增强安全性。Secure:仅在使用 HTTPS 时发送 Cookie。
获取 Cookie
在 HTTP 请求中,客户端会将所有与当前域名匹配的 Cookie 通过 Cookie 头部发送到服务器。服务器可以通过解析 req.headers.cookie 来获取这些 Cookie。通常,Cookie 头部的值是一个字符串,包含多个键值对,用分号和空格分隔。
注意事项
- 在设置 Cookie 时,确保使用正确的属性来增强安全性。
- 在获取 Cookie 时,可能需要手动解析
Cookie头部的字符串,以提取所需的键值对。 - 如果 Cookie 中包含敏感信息,建议使用 HTTPS 来加密传输。