aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/api/http.md163
1 files changed, 82 insertions, 81 deletions
diff --git a/doc/api/http.md b/doc/api/http.md
index 120cf98f23..88c4552c18 100644
--- a/doc/api/http.md
+++ b/doc/api/http.md
@@ -73,9 +73,9 @@ It is good practice, to [`destroy()`][] an `Agent` instance when it is no
longer in use, because unused sockets consume OS resources.
Sockets are removed from an agent's pool when the socket emits either
-a `'close'` event or an `'agentRemove'` event. This means that if
-you intend to keep one HTTP request open for a long time and don't
-want it to stay in the pool you can do something along the lines of:
+a `'close'` event or an `'agentRemove'` event. When intending to keep one
+HTTP request open for a long time without keeping it in the pool, something
+like the following may be done:
```js
http.get(options, (res) => {
@@ -85,7 +85,7 @@ http.get(options, (res) => {
});
```
-You may also use an agent for an individual request. By providing
+An agent may also be used for an individual request. By providing
`{agent: false}` as an option to the `http.get()` or `http.request()`
functions, a one-time use `Agent` with default options will be used
for the client connection.
@@ -112,21 +112,21 @@ added: v0.3.4
Can have the following fields:
* `keepAlive` {boolean} Keep sockets around even when there are no
outstanding requests, so they can be used for future requests without
- having to reestablish a TCP connection. Default = `false`
- * `keepAliveMsecs` {Integer} When using the `keepAlive` option, specifies
+ having to reestablish a TCP connection. Defaults to `false`
+ * `keepAliveMsecs` {number} When using the `keepAlive` option, specifies
the [initial delay](net.html#net_socket_setkeepalive_enable_initialdelay)
for TCP Keep-Alive packets. Ignored when the
- `keepAlive` option is `false` or `undefined`. Default = `1000`.
+ `keepAlive` option is `false` or `undefined`. Defaults to `1000`.
* `maxSockets` {number} Maximum number of sockets to allow per
- host. Default = `Infinity`.
+ host. Defaults to `Infinity`.
* `maxFreeSockets` {number} Maximum number of sockets to leave open
in a free state. Only relevant if `keepAlive` is set to `true`.
- Default = `256`.
+ Defaults to `256`.
The default [`http.globalAgent`][] that is used by [`http.request()`][] has all
of these values set to their respective defaults.
-To configure any of them, you must create your own [`http.Agent`][] instance.
+To configure any of them, a custom [`http.Agent`][] instance must be created.
```js
const http = require('http');
@@ -162,9 +162,9 @@ added: v0.11.4
Destroy any sockets that are currently in use by the agent.
-It is usually not necessary to do this. However, if you are using an
+It is usually not necessary to do this. However, if using an
agent with `keepAlive` enabled, then it is best to explicitly shut down
-the agent when you know that it will no longer be used. Otherwise,
+the agent when it will no longer be used. Otherwise,
sockets may hang open for quite a long time before the server
terminates them.
@@ -188,7 +188,7 @@ added: v0.11.4
* `port` {number} Port of remote server
* `localAddress` {string} Local interface to bind for network connections
when issuing the request
-* Returns: {String}
+* Returns: {string}
Get a unique name for a set of request options, to determine whether a
connection can be reused. For an HTTP agent, this returns
@@ -201,7 +201,7 @@ socket reusability.
added: v0.11.7
-->
-* {Number}
+* {number}
By default set to 256. For agents with `keepAlive` enabled, this
sets the maximum number of sockets that will be left open in the free
@@ -212,7 +212,7 @@ state.
added: v0.3.6
-->
-* {Number}
+* {number}
By default set to Infinity. Determines how many concurrent sockets the agent
can have open per origin. Origin is either a 'host:port' or
@@ -258,8 +258,8 @@ During the [`'response'`][] event, one can add listeners to the
response object; particularly to listen for the `'data'` event.
If no [`'response'`][] handler is added, then the response will be
-entirely discarded. However, if you add a [`'response'`][] event handler,
-then you **must** consume the data from the response object, either by
+entirely discarded. However, if a [`'response'`][] event handler is added,
+then the data from the response object **must** be consumed, either by
calling `response.read()` whenever there is a `'readable'` event, or
by adding a `'data'` handler, or by calling the `.resume()` method.
Until the data is consumed, the `'end'` event will not fire. Also, until
@@ -301,7 +301,7 @@ Emitted each time a server responds to a request with a `CONNECT` method. If thi
event is not being listened for, clients receiving a `CONNECT` method will have
their connections closed.
-A client and server pair that shows you how to listen for the `'connect'` event:
+A client and server pair demonstrating how to listen for the `'connect'` event:
```js
const http = require('http');
@@ -399,7 +399,7 @@ Emitted each time a server responds to a request with an upgrade. If this
event is not being listened for, clients receiving an upgrade header will have
their connections closed.
-A client server pair that show you how to listen for the `'upgrade'` event.
+A client server pair demonstrating how to listen for the `'upgrade'` event.
```js
const http = require('http');
@@ -484,13 +484,13 @@ added: v1.6.0
Flush the request headers.
-For efficiency reasons, Node.js normally buffers the request headers until you
-call `request.end()` or write the first chunk of request data. It then tries
-hard to pack the request headers and data into a single TCP packet.
+For efficiency reasons, Node.js normally buffers the request headers until
+`request.end()` is called or the first chunk of request data is written. It
+then tries to pack the request headers and data into a single TCP packet.
-That's usually what you want (it saves a TCP round-trip) but not when the first
-data is not sent until possibly much later. `request.flushHeaders()` lets you bypass
-the optimization and kickstart the request.
+That's usually desired (it saves a TCP round-trip), but not when the first
+data is not sent until possibly much later. `request.flushHeaders()` bypasses
+the optimization and kickstarts the request.
### request.setNoDelay([noDelay])
<!-- YAML
@@ -536,7 +536,7 @@ added: v0.1.29
* `callback` {Function}
Sends a chunk of the body. By calling this method
-many times, the user can stream a request body to a
+many times, a request body can be sent to a
server--in that case it is suggested to use the
`['Transfer-Encoding', 'chunked']` header line when
creating the request.
@@ -653,7 +653,7 @@ not listened for, then clients requesting a `CONNECT` method will have their
connections closed.
After this event is emitted, the request's socket will not have a `'data'`
-event listener, meaning you will need to bind to it in order to handle data
+event listener, meaning it will need to be bound in order to handle data
sent to the server on that socket.
### Event: 'connection'
@@ -695,7 +695,7 @@ listened for, then clients requesting an upgrade will have their connections
closed.
After this event is emitted, the request's socket will not have a `'data'`
-event listener, meaning you will need to bind to it in order to handle data
+event listener, meaning it will need to be bound in order to handle data
sent to the server on that socket.
### server.close([callback])
@@ -774,7 +774,7 @@ after the `'listening'` event has been emitted.
To listen to a unix socket, supply a filename instead of port and hostname.
`backlog` is the maximum length of the queue of pending connections.
-The actual length will be determined by your OS through sysctl settings such as
+The actual length will be determined by the OS through sysctl settings such as
`tcp_max_syn_backlog` and `somaxconn` on linux. The default value of this
parameter is 511 (not 512).
@@ -789,27 +789,27 @@ subsequent call will *re-open* the server using the provided options.
added: v5.7.0
-->
-* {Boolean}
+* {boolean}
A Boolean indicating whether or not the server is listening for
connections.
-### server.maxHeadersCount
+### server.maxHeadersCount([limit])
<!-- YAML
added: v0.7.0
-->
-* {Number}
+* `limit` {number} Defaults to 1000.
Limits maximum incoming headers count, equal to 1000 by default. If set to 0 -
no limit will be applied.
-### server.setTimeout(msecs, callback)
+### server.setTimeout([msecs][, callback])
<!-- YAML
added: v0.9.12
-->
-* `msecs` {number}
+* `msecs` {number} Defaults to 120000 (2 minutes).
* `callback` {Function}
Sets the timeout value for sockets, and emits a `'timeout'` event on
@@ -820,18 +820,17 @@ If there is a `'timeout'` event listener on the Server object, then it
will be called with the timed-out socket as an argument.
By default, the Server's timeout value is 2 minutes, and sockets are
-destroyed automatically if they time out. However, if you assign a
-callback to the Server's `'timeout'` event, then you are responsible
-for handling socket timeouts.
+destroyed automatically if they time out. However, if a callback is assigned
+to the Server's `'timeout'` event, timeouts must be handled explicitly.
Returns `server`.
-### server.timeout
+### server.timeout([msecs])
<!-- YAML
added: v0.9.12
-->
-* {Number} Default = 120000 (2 minutes)
+* `msecs` {number} Defaults to 120000 (2 minutes).
The number of milliseconds of inactivity before a socket is presumed
to have timed out.
@@ -888,7 +887,7 @@ Trailers will **only** be emitted if chunked encoding is used for the
response; if it is not (e.g. if the request was HTTP/1.0), they will
be silently discarded.
-Note that HTTP requires the `Trailer` header to be sent if you intend to
+Note that HTTP requires the `Trailer` header to be sent in order to
emit trailers, with a list of the header fields in its value. E.g.,
```js
@@ -926,7 +925,7 @@ is finished.
added: v0.0.2
-->
-* {Boolean}
+* {boolean}
Boolean value that indicates whether the response has completed. Starts
as `false`. After [`response.end()`][] executes, the value will be `true`.
@@ -937,7 +936,7 @@ added: v0.4.0
-->
* `name` {string}
-* Returns: {String}
+* Returns: {string}
Reads out a header that's already been queued but not sent to the client.
Note that the name is case insensitive.
@@ -996,8 +995,8 @@ var headers = response.getHeaders();
added: v7.7.0
-->
-* `name` {String}
-* Returns: {Boolean}
+* `name` {string}
+* Returns: {boolean}
Returns `true` if the header identified by `name` is currently set in the
outgoing headers. Note that the header name matching is case-insensitive.
@@ -1013,7 +1012,7 @@ var hasContentType = response.hasHeader('content-type');
added: v0.9.3
-->
-* {Boolean}
+* {boolean}
Boolean (read-only). True if headers were sent, false otherwise.
@@ -1037,7 +1036,7 @@ response.removeHeader('Content-Encoding');
added: v0.7.5
-->
-* {Boolean}
+* {boolean}
When true, the Date header will be automatically generated and sent in
the response if it is not already present in the headers. Defaults to true.
@@ -1051,11 +1050,11 @@ added: v0.4.0
-->
* `name` {string}
-* `value` {string}
+* `value` {string | string[]}
Sets a single header value for implicit headers. If this header already exists
in the to-be-sent headers, its value will be replaced. Use an array of strings
-here if you need to send multiple headers with the same name.
+here to send multiple headers with the same name.
Example:
@@ -1086,7 +1085,7 @@ const server = http.createServer((req,res) => {
});
```
-### response.setTimeout(msecs, callback)
+### response.setTimeout(msecs[, callback])
<!-- YAML
added: v0.9.12
-->
@@ -1099,10 +1098,9 @@ provided, then it is added as a listener on the `'timeout'` event on
the response object.
If no `'timeout'` listener is added to the request, the response, or
-the server, then sockets are destroyed when they time out. If you
-assign a handler on the request, the response, or the server's
-`'timeout'` events, then it is your responsibility to handle timed out
-sockets.
+the server, then sockets are destroyed when they time out. If a handler is
+assigned to the request, the response, or the server's `'timeout'` events,
+timed out sockets must be handled explicitly.
Returns `response`.
@@ -1111,7 +1109,7 @@ Returns `response`.
added: v0.4.0
-->
-* {Number}
+* {number}
When using implicit headers (not calling [`response.writeHead()`][] explicitly),
this property controls the status code that will be sent to the client when
@@ -1131,7 +1129,7 @@ status code which was sent out.
added: v0.11.8
-->
-* {String}
+* {string}
When using implicit headers (not calling [`response.writeHead()`][] explicitly), this property
controls the status message that will be sent to the client when the headers get
@@ -1155,7 +1153,7 @@ added: v0.1.29
* `chunk` {string | Buffer}
* `encoding` {string}
* `callback` {Function}
-* Returns: {Boolean}
+* Returns: {boolean}
If this method is called and [`response.writeHead()`][] has not been called,
it will switch to implicit header mode and flush the implicit headers.
@@ -1172,10 +1170,10 @@ of data is flushed.
higher-level multi-part body encodings that may be used.
The first time [`response.write()`][] is called, it will send the buffered
-header information and the first body to the client. The second time
-[`response.write()`][] is called, Node.js assumes you're going to be streaming
-data, and sends that separately. That is, the response is buffered up to the
-first chunk of body.
+header information and the first chunk of the body to the client. The second
+time [`response.write()`][] is called, Node.js assumes data will be streamed,
+and sends the new data separately. That is, the response is buffered up to the
+first chunk of the body.
Returns `true` if the entire data was flushed successfully to the kernel
buffer. Returns `false` if all or part of the data was queued in user memory.
@@ -1220,8 +1218,8 @@ response.writeHead(200, {
This method must only be called once on a message and it must
be called before [`response.end()`][] is called.
-If you call [`response.write()`][] or [`response.end()`][] before calling this,
-the implicit/mutable headers will be calculated and call this function for you.
+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
@@ -1323,7 +1321,7 @@ header name:
added: v0.1.1
-->
-* {String}
+* {string}
In case of server request, the HTTP version sent by the client. In the case of
client response, the HTTP version of the connected-to server.
@@ -1337,7 +1335,7 @@ Also `message.httpVersionMajor` is the first integer and
added: v0.1.1
-->
-* {String}
+* {string}
**Only valid for request obtained from [`http.Server`][].**
@@ -1412,7 +1410,7 @@ client's authentication details.
added: v0.1.1
-->
-* {Number}
+* {number}
**Only valid for response obtained from [`http.ClientRequest`][].**
@@ -1423,7 +1421,7 @@ The 3-digit HTTP response status code. E.G. `404`.
added: v0.11.10
-->
-* {String}
+* {string}
**Only valid for response obtained from [`http.ClientRequest`][].**
@@ -1443,7 +1441,7 @@ The request/response trailers object. Only populated at the `'end'` event.
added: v0.1.90
-->
-* {String}
+* {string}
**Only valid for request obtained from [`http.Server`][].**
@@ -1462,8 +1460,8 @@ Then `request.url` will be:
'/status?name=ryan'
```
-If you would like to parse the URL into its parts, you can use
-`require('url').parse(request.url)`. Example:
+To parse the url into its parts `require('url').parse(request.url)`
+can be used. Example:
```txt
$ node
@@ -1476,9 +1474,10 @@ $ node
}
```
-If you would like to extract the parameters from the query string,
-you can use the `require('querystring').parse` function, or pass
-`true` as the second argument to `require('url').parse`. Example:
+To extract the parameters from the query string, the
+`require('querystring').parse` function can be used, or
+`true` can be passed as the second argument to `require('url').parse`.
+Example:
```txt
$ node
@@ -1515,6 +1514,7 @@ Found'`.
<!-- YAML
added: v0.1.13
-->
+- `requestListener` {Function}
* Returns: {http.Server}
@@ -1528,7 +1528,8 @@ added to the [`'request'`][] event.
added: v0.3.6
-->
-* `options` {Object}
+* `options` {Object | string} Accepts the same `options` as
+ [`http.request()`][], with the `method` always set to `GET`.
* `callback` {Function}
* Returns: {http.ClientRequest}
@@ -1594,10 +1595,10 @@ requests.
added: v0.3.6
-->
-* `options` {Object}
- * `protocol` {string} Protocol to use. Defaults to `'http:'`.
+* `options` {Object | string}
+ * `protocol` {string} Protocol to use. Defaults to `http:`.
* `host` {string} A domain name or IP address of the server to issue the
- request to. Defaults to `'localhost'`.
+ request to. Defaults to `localhost`.
* `hostname` {string} Alias for `host`. To support [`url.parse()`][],
`hostname` is preferred over `host`.
* `family` {number} IP address family to use when resolving `host` and
@@ -1616,7 +1617,7 @@ added: v0.3.6
* `headers` {Object} An object containing request headers.
* `auth` {string} Basic authentication i.e. `'user:password'` to compute an
Authorization header.
- * `agent` {http.Agent|boolean} Controls [`Agent`][] behavior. Possible values:
+ * `agent` {http.Agent | boolean} Controls [`Agent`][] behavior. Possible values:
* `undefined` (default): use [`http.globalAgent`][] for this host and port.
* `Agent` object: explicitly use the passed in `Agent`.
* `false`: causes a new `Agent` with default values to be used.
@@ -1625,7 +1626,7 @@ added: v0.3.6
avoid creating a custom `Agent` class just to override the default
`createConnection` function. See [`agent.createConnection()`][] for more
details.
- * `timeout` {Integer}: A number specifying the socket timeout in milliseconds.
+ * `timeout` {number}: A number specifying the socket timeout in milliseconds.
This will set the timeout before the socket is connected.
* `callback` {Function}
* Returns: {http.ClientRequest}
@@ -1683,7 +1684,7 @@ req.end();
```
Note that in the example `req.end()` was called. With `http.request()` one
-must always call `req.end()` to signify that you're done with the request -
+must always call `req.end()` to signify the end of the request -
even if there is no data being written to the request body.
If any error is encountered during the request (be that with DNS resolution,
@@ -1699,8 +1700,8 @@ There are a few special headers that should be noted.
* Sending a 'Content-Length' header will disable the default chunked encoding.
* Sending an 'Expect' header will immediately send the request headers.
- Usually, when sending 'Expect: 100-continue', you should both set a timeout
- and listen for the `'continue'` event. See RFC2616 Section 8.2.3 for more
+ Usually, when sending 'Expect: 100-continue', both a timeout and a listener
+ for the `continue` event should be set. See RFC2616 Section 8.2.3 for more
information.
* Sending an Authorization header will override using the `auth` option