const http = require('http');
// Create HTTP server
const server = http.createServer((req, res) => {
// Method 1: Set individual headers with setHeader
res.setHeader('Content-Type', 'application/json');
res.setHeader('Cache-Control', 'max-age=3600');
res.setHeader('X-Custom-Header', 'Method 1');
// Get a header value
const contentType = res.getHeader('Content-Type');
console.log(`Content-Type header: ${contentType}`);
// Check if a header exists
console.log(`Has Cache-Control header: ${res.hasHeader('Cache-Control')}`);
// Get all header names
console.log('Header names:', res.getHeaderNames());
// Get all headers as an object
console.log('All headers:', res.getHeaders());
// Remove a header
res.removeHeader('X-Custom-Header');
console.log(`After removal, has X-Custom-Header: ${res.hasHeader('X-Custom-Header')}`);
// Method 2: Set multiple headers with writeHead
res.writeHead(200, {
'Content-Type': 'application/json',
'X-Custom-Header': 'Method 2',
'X-Powered-By': 'Node.js'
});
// Send JSON response
const responseObject = {
message: 'Headers demonstration',
headers: Object.fromEntries(
Object.entries(res.getHeaders())
),
headersSent: res.headersSent
};
// End the response
res.end(JSON.stringify(responseObject, null, 2));
});
// Start server
const PORT = 3001;
server.listen(PORT, () => {
console.log(`Server running at http://localhost:${PORT}/`);
// Make a test request to the server
http.get(`http://localhost:${PORT}`, (response) => {
console.log('\nResponse Headers:');
console.log(JSON.stringify(response.headers, null, 2));
let data = '';
response.on('data', (chunk) => {
data += chunk;
});
response.on('end', () => {
console.log('\nResponse Body:');
console.log(data);
server.close();
});
}).on('error', (err) => {
console.error('Error making test request:', err);
server.close();
});
});
// Handle server errors
server.on('error', (err) => {
console.error('Server error:', err);
});