面试题答案
一键面试在Node.js中使用http
模块构建HTTP客户端获取并处理响应头信息,以下是示例:
1. 常见处理场景
- 判断响应类型:根据
Content-Type
头判断返回的数据类型,如application/json
则按JSON格式处理,text/html
则按HTML处理。 - 缓存控制:根据
Cache-Control
头决定是否使用本地缓存,或缓存多久。 - 权限验证:某些响应头可能包含权限相关信息,如
Authorization
相关头,用于验证请求是否有权限访问资源。
2. 代码实现
const http = require('http');
const options = {
hostname: 'example.com',
port: 80,
path: '/',
method: 'GET'
};
const req = http.request(options, (res) => {
console.log('状态码:', res.statusCode);
console.log('响应头:', res.headers);
// 处理场景示例:判断响应类型为JSON
if (res.headers['content-type'] === 'application/json') {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
try {
const jsonData = JSON.parse(data);
console.log('解析后的JSON数据:', jsonData);
} catch (error) {
console.error('JSON解析错误:', error);
}
});
}
});
req.on('error', (e) => {
console.error('请求错误:', e.message);
});
req.end();
在上述代码中,通过http.request
发起HTTP请求,响应对象res
的headers
属性包含了响应头信息。通过判断content-type
来处理JSON类型数据,这只是众多处理场景中的一种,你可以根据实际需求处理不同的响应头。同时,如果使用https
模块,原理相同,只需将http
替换为https
并正确配置证书等相关选项。