• statusCode {number}
    • statusMessage {string}
    • headers {Object}
    • Returns: {http2.Http2ServerResponse}

    Sends a response header to the request. The status code is a 3-digit HTTP status code, like 404. The last argument, headers, are the response headers.

    Returns a reference to the Http2ServerResponse, so that calls can be chained.

    For compatibility with [HTTP/1][], a human-readable statusMessage may be passed as the second argument. However, because the statusMessage has no meaning within HTTP/2, the argument will have no effect and a process warning will be emitted.

    1. const body = 'hello world';
    2. response.writeHead(200, {
    3. 'Content-Length': Buffer.byteLength(body),
    4. 'Content-Type': 'text/plain; charset=utf-8' });

    Content-Length is given in bytes not characters. The Buffer.byteLength() API may be used to determine the number of bytes in a given encoding. On outbound messages, Node.js does not check if Content-Length and the length of the body being transmitted are equal or not. However, when receiving messages, Node.js will automatically reject messages when the Content-Length does not match the actual payload size.

    This method may be called at most one time on a message before [response.end()][] is called.

    If [response.write()][] or [response.end()][] are called before calling this, the implicit/mutable headers will be calculated and call this function.

    When headers have been set with [response.setHeader()][], they will be merged with any headers passed to [response.writeHead()][], with the headers passed to [response.writeHead()][] given precedence.

    1. // Returns content-type = text/plain
    2. const server = http2.createServer((req, res) => {
    3. res.setHeader('Content-Type', 'text/html; charset=utf-8');
    4. res.setHeader('X-Foo', 'bar');
    5. res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
    6. res.end('ok');
    7. });

    Attempting to set a header field name or value that contains invalid characters will result in a [TypeError][] being thrown.