Bird
Raised Fist0
Node.jsframework~5 mins

Setting response headers in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of setting response headers in Node.js?
Response headers provide metadata about the response, such as content type, caching rules, and security policies. They help the browser understand how to handle the response.
Click to reveal answer
beginner
How do you set a single response header in Node.js using the http module?
Use the response object's setHeader method, like: res.setHeader('Content-Type', 'application/json').
Click to reveal answer
intermediate
What happens if you try to set a header after the response has been sent?
Node.js will throw an error because headers must be set before sending the response body. Once headers are sent, they cannot be changed.
Click to reveal answer
intermediate
How can you set multiple headers at once in Node.js?
You can use res.writeHead(statusCode, headersObject) to set status and multiple headers together, for example: res.writeHead(200, {'Content-Type': 'text/html', 'Cache-Control': 'no-cache'}).
Click to reveal answer
beginner
Why is it important to set the 'Content-Type' header correctly?
It tells the browser what kind of data is being sent (like HTML, JSON, or plain text), so the browser can display or process it properly.
Click to reveal answer
Which method sets a single response header in Node.js?
Ares.headerSet()
Bres.getHeader()
Cres.sendHeader()
Dres.setHeader()
When must response headers be set in Node.js?
AAfter sending the response body
BBefore sending the response body
CAny time during the request
DOnly after the response ends
What does the 'Content-Type' header specify?
AThe type of data in the response
BThe size of the response
CThe server's IP address
DThe client's browser version
Which method sets multiple headers and status code at once?
Ares.writeHead()
Bres.setHeaders()
Cres.sendHeaders()
Dres.setStatus()
What happens if you set a header after calling res.end()?
AThe response restarts
BThe header is set successfully
CAn error occurs because headers are already sent
DThe header is ignored silently
Explain how to set response headers in Node.js and why it is important.
Think about how the browser knows what kind of data it receives.
You got /4 concepts.
    Describe the difference between res.setHeader() and res.writeHead() in Node.js.
    One is for single headers, the other for multiple headers and status.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the purpose of setting response headers in a Node.js server?
      easy
      A. To execute JavaScript code on the server
      B. To provide the browser with important information about the response
      C. To store data permanently on the server
      D. To create new files on the server

      Solution

      1. Step 1: Understand what response headers do

        Response headers tell the browser details about the response, like content type or caching rules.
      2. Step 2: Identify the correct purpose

        Only To provide the browser with important information about the response describes this role correctly; other options describe unrelated server tasks.
      3. Final Answer:

        To provide the browser with important information about the response -> Option B
      4. Quick Check:

        Response headers = browser info [OK]
      Hint: Headers tell browser about response before body [OK]
      Common Mistakes:
      • Thinking headers run code on server
      • Confusing headers with server storage
      • Believing headers create files
      2. Which of the following is the correct syntax to set a response header named Content-Type to application/json in Node.js?
      easy
      A. response.setHeader('Content-Type', 'application/json');
      B. response.header('Content-Type', 'application/json');
      C. response.set('Content-Type', 'application/json');
      D. response.addHeader('Content-Type', 'application/json');

      Solution

      1. Step 1: Recall Node.js method for setting headers

        Node.js uses response.setHeader(name, value) to set headers.
      2. Step 2: Match syntax with options

        Only response.setHeader('Content-Type', 'application/json'); uses setHeader correctly; others use incorrect method names.
      3. Final Answer:

        response.setHeader('Content-Type', 'application/json'); -> Option A
      4. Quick Check:

        Use setHeader(name, value) [OK]
      Hint: Use setHeader method exactly as shown [OK]
      Common Mistakes:
      • Using header() instead of setHeader()
      • Using set() or addHeader() which don't exist
      • Wrong method name casing
      3. What will be the value of the Content-Type header sent to the client after running this code snippet?
      const http = require('http');
      const server = http.createServer((req, res) => {
        res.setHeader('Content-Type', 'text/html');
        res.setHeader('Content-Type', 'application/json');
        res.end('{}');
      });
      server.listen(3000);
      medium
      A. 'text/html'
      B. Both 'text/html' and 'application/json'
      C. No Content-Type header is sent
      D. 'application/json'

      Solution

      1. Step 1: Understand header overwriting behavior

        Setting the same header twice overwrites the previous value in Node.js.
      2. Step 2: Identify final header value

        The second setHeader call sets 'Content-Type' to 'application/json', replacing 'text/html'.
      3. Final Answer:

        'application/json' -> Option D
      4. Quick Check:

        Last setHeader call wins [OK]
      Hint: Last setHeader call overwrites previous [OK]
      Common Mistakes:
      • Thinking both headers are sent
      • Assuming first header stays
      • Believing no header is sent
      4. Identify the error in this Node.js code that tries to set a response header:
      const http = require('http');
      const server = http.createServer((req, res) => {
        res.write('Hello');
        res.setHeader('Content-Type', 'text/plain');
        res.end();
      });
      server.listen(3000);
      medium
      A. res.end() is missing a parameter
      B. The method setHeader does not exist on res
      C. Headers must be set before writing the response body
      D. The server.listen port number is invalid

      Solution

      1. Step 1: Check order of header setting and response writing

        Headers must be set before sending any part of the response body.
      2. Step 2: Identify the error in code order

        res.write('Hello') sends body first, so setHeader after it causes error.
      3. Final Answer:

        Headers must be set before writing the response body -> Option C
      4. Quick Check:

        Set headers before body [OK]
      Hint: Set headers before any res.write or res.end [OK]
      Common Mistakes:
      • Setting headers after writing body
      • Thinking setHeader is invalid method
      • Assuming res.end needs data always
      5. You want to set multiple headers including Content-Type as application/json and Cache-Control as no-cache in a Node.js server. Which code snippet correctly sets both headers before sending the response?
      hard
      A. res.writeHead(200, { 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' }); res.end(JSON.stringify(data));
      B. res.end(JSON.stringify(data)); res.setHeader('Content-Type', 'application/json'); res.setHeader('Cache-Control', 'no-cache');
      C. res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify(data)); res.setHeader('Cache-Control', 'no-cache');
      D. res.setHeader({'Content-Type': 'application/json', 'Cache-Control': 'no-cache'}); res.end(JSON.stringify(data));

      Solution

      1. Step 1: Understand setting multiple headers at once

        writeHead allows setting status and multiple headers before sending response.
      2. Step 2: Check order and correctness

        res.writeHead(200, { 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' }); res.end(JSON.stringify(data)); sets both headers before res.end, correctly using writeHead.
      3. Step 3: Identify errors in other options

        res.setHeader({'Content-Type': 'application/json', 'Cache-Control': 'no-cache'}); res.end(JSON.stringify(data)); incorrectly passes an object to setHeader (expects name, value); B and C set headers after res.end (which sends headers).
      4. Final Answer:

        res.writeHead(200, { 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' }); res.end(JSON.stringify(data)); -> Option A
      5. Quick Check:

        Use writeHead for multiple headers before response [OK]
      Hint: Use writeHead to set many headers at once before response [OK]
      Common Mistakes:
      • Using setHeader with object (like Express)
      • Setting headers after res.end
      • Confusing setHeader and writeHead usage