doc: merging behavior of writeHead vs setHeader
PR-URL: https://github.com/nodejs/node/pull/5081 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io>
This commit is contained in:
parent
47e926a8d6
commit
3da7d13e59
@ -724,6 +724,20 @@ response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']);
|
|||||||
Attempting to set a header field name that contains invalid characters will
|
Attempting to set a header field name that contains invalid characters will
|
||||||
result in a [`TypeError`][] being thrown.
|
result in a [`TypeError`][] being thrown.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// returns content-type = text/plain
|
||||||
|
const server = http.createServer((req,res) => {
|
||||||
|
res.setHeader('Content-Type', 'text/html');
|
||||||
|
res.setHeader('X-Foo', 'bar');
|
||||||
|
res.writeHead(200, {'Content-Type': 'text/plain'});
|
||||||
|
res.end('ok');
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
### response.setTimeout(msecs, callback)
|
### response.setTimeout(msecs, callback)
|
||||||
|
|
||||||
* `msecs` {Number}
|
* `msecs` {Number}
|
||||||
@ -825,6 +839,20 @@ be called before [`response.end()`][] is called.
|
|||||||
If you call [`response.write()`][] or [`response.end()`][] before calling this, the
|
If you call [`response.write()`][] or [`response.end()`][] before calling this, the
|
||||||
implicit/mutable headers will be calculated and call this function for you.
|
implicit/mutable headers will be calculated and call this function for you.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
```js
|
||||||
|
// returns content-type = text/plain
|
||||||
|
const server = http.createServer((req,res) => {
|
||||||
|
res.setHeader('Content-Type', 'text/html');
|
||||||
|
res.setHeader('X-Foo', 'bar');
|
||||||
|
res.writeHead(200, {'Content-Type': 'text/plain'});
|
||||||
|
res.end('ok');
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
Note that Content-Length is given in bytes not characters. The above example
|
Note that Content-Length is given in bytes not characters. The above example
|
||||||
works because the string `'hello world'` contains only single byte characters.
|
works because the string `'hello world'` contains only single byte characters.
|
||||||
If the body contains higher coded characters then `Buffer.byteLength()`
|
If the body contains higher coded characters then `Buffer.byteLength()`
|
||||||
@ -1180,6 +1208,7 @@ There are a few special headers that should be noted.
|
|||||||
[`net.Socket`]: net.html#net_class_net_socket
|
[`net.Socket`]: net.html#net_class_net_socket
|
||||||
[`request.socket.getPeerCertificate()`]: tls.html#tls_tlssocket_getpeercertificate_detailed
|
[`request.socket.getPeerCertificate()`]: tls.html#tls_tlssocket_getpeercertificate_detailed
|
||||||
[`response.end()`]: #http_response_end_data_encoding_callback
|
[`response.end()`]: #http_response_end_data_encoding_callback
|
||||||
|
[`response.setHeader()`]: #http_response_setheader_name_value
|
||||||
[`response.write()`]: #http_response_write_chunk_encoding_callback
|
[`response.write()`]: #http_response_write_chunk_encoding_callback
|
||||||
[`response.write(data, encoding)`]: #http_response_write_chunk_encoding_callback
|
[`response.write(data, encoding)`]: #http_response_write_chunk_encoding_callback
|
||||||
[`response.writeContinue()`]: #http_response_writecontinue
|
[`response.writeContinue()`]: #http_response_writecontinue
|
||||||
|
Loading…
x
Reference in New Issue
Block a user