Node.js – HTTP Agent
Node.js is a powerful and popular server-side JavaScript runtime that allows developers to build scalable network applications. One of the core modules in Node.js is the HTTP module, which provides functionality for creating HTTP servers and making HTTP requests.
One important aspect of the HTTP module is the HTTP Agent, which is used to manage and reuse TCP connections to the server. This can be particularly useful when making multiple requests to the same server, as it can improve performance by avoiding the overhead of creating a new connection for each request.
The HTTP Agent is a part of the core HTTP module and does not need to be installed separately. It is used automatically by Node.js when making HTTP requests, and can be configured and customized to meet specific needs.
Creating an HTTP Agent
To create an HTTP Agent in Node.js, you can simply use the built-in http.Agent
class:
const http = require('http');
const agent = new http.Agent({ /* options */ });
Configuring the HTTP Agent
The HTTP Agent can be configured with various options, such as maximum number of sockets, keep-alive timeout, and more. These options can be passed to the http.Agent
constructor as an object.
For example, to create an HTTP Agent with a maximum of 10 sockets and a keep-alive timeout of 30 seconds, you can use the following code:
const agent = new http.Agent({
maxSockets: 10,
keepAlive: 30000
});
Using the HTTP Agent
Once you have created an HTTP Agent, you can use it when making HTTP requests in Node.js. When making a request with the http.request()
method, you can pass the HTTP Agent as an option:
const options = {
// request options
agent: agent
};
const req = http.request(options, (res) => {
// handle response
});
req.end();
By using the HTTP Agent, you can take advantage of connection pooling and improve the performance of your Node.js applications when making multiple HTTP requests to the same server.
Overall, the HTTP Agent is a powerful feature of the Node.js HTTP module that can help optimize network performance and improve the efficiency of your applications.
Pour le coup cette vidéo est super instructive.
J'avais exactement cette frustration : celle de ne pas avoir de moyen built in pour gérer le parallèlisme (avec axios dans mon cas).
Merci beaucoup 🙂