The HTTP Agent is used for pooling sockets used in HTTP client requests.
The HTTP Agent is used for pooling sockets used in HTTP client requests. The HTTP Agent also defaults client requests to using Connection:keep-alive. If no pending HTTP requests are waiting on a socket to become free the socket is closed. This means that Node.js's pool has the benefit of keep-alive when under load but still does not require developers to manually close the HTTP clients using KeepAlive.
NodeJS HTTP Client
NodeJS HTTP Client
http.ClientRequest - This object is created internally and returned from http.request().
http.ClientRequest - This object is created internally and returned from http.request(). It represents an in-progress request whose header has already been queued. The header is still mutable using the setHeader(name, value), getHeader(name), removeHeader(name) API. The actual header will be sent along with the first data chunk or when closing the connection.
To get the response, add a listener for 'response' to the request object. 'response' will be emitted from the request object when the response headers have been received. The 'response' event is executed with one argument which is an instance of http.IncomingMessage.
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 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 the data is read it will consume memory that can eventually lead to a 'process out of memory' error.
Note: Node.js does not check whether Content-Length and the length of the body which has been transmitted are equal or not.
Connection Options
Connection Options
To use the HTTP server and client one must require('http').
To use the HTTP server and client one must require('http').
The HTTP interfaces in Node.js are designed to support many features of the protocol which have been traditionally difficult to use. In particular, large, possibly chunk-encoded, messages. The interface is careful to never buffer entire requests or responses--the user is able to stream data.
https://nodejs.org/api/http.html
Http Extensions
An IncomingMessage object is created by http.Server or http.ClientRequest and passed as the first argument to the 'request' and 'response' event respectively.
An IncomingMessage object is created by http.Server or http.ClientRequest and passed as the first argument to the 'request' and 'response' event respectively. It may be used to access response status, headers and data. It implements the Readable Stream interface, as well as the following additional events, methods, and properties.
https://nodejs.org/api/http.html#http_class_http_incomingmessage
Outgoing Message
Outgoing Message
Client Request Options
Client Request Options
http.Server - This class inherits from net.Server and has the following additional events
http.Server - This class inherits from net.Server and has the following additional events
Server Events
Node.js http.ServerResponse
Node.js http.ServerResponse
https://nodejs.org/api/http.html#http_class_http_serverresponse
Agent Companion
Client Request Companion
Http Singleton
Http Singleton
Incoming Message Companion
Server Companion
Server Response
http package object