deps: update undici to 7.13.0 · nodejs/node@f834a6b

@@ -440,13 +440,14 @@ This behavior is intentional for server-side environments where CORS restriction

440440

* https://fetch.spec.whatwg.org/#garbage-collection

441441442442

The [Fetch Standard](https://fetch.spec.whatwg.org) allows users to skip consuming the response body by relying on

443-

[garbage collection](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management#garbage_collection) to release connection resources. Undici does not do the same. Therefore, it is important to always either consume or cancel the response body.

443+

[garbage collection](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management#garbage_collection) to release connection resources.

444444445445

Garbage collection in Node is less aggressive and deterministic

446446

(due to the lack of clear idle periods that browsers have through the rendering refresh rate)

447447

which means that leaving the release of connection resources to the garbage collector can lead

448448

to excessive connection usage, reduced performance (due to less connection re-use), and even

449449

stalls or deadlocks when running out of connections.

450+

Therefore, __it is important to always either consume or cancel the response body anyway__.

450451451452

```js

452453

// Do

@@ -459,7 +460,15 @@ for await (const chunk of body) {

459460

const { headers } = await fetch(url);

460461

```

461462462-

The same applies for `request` too:

463+

However, if you want to get only headers, it might be better to use `HEAD` request method. Usage of this method will obviate the need for consumption or cancelling of the response body. See [MDN - HTTP - HTTP request methods - HEAD](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/HEAD) for more details.

464+465+

```js

466+

const headers = await fetch(url, { method: 'HEAD' })

467+

.then(res => res.headers)

468+

```

469+470+

Note that consuming the response body is _mandatory_ for `request`:

471+463472

```js

464473

// Do

465474

const { body, headers } = await request(url);

@@ -469,13 +478,6 @@ await res.body.dump(); // force consumption of body

469478

const { headers } = await request(url);

470479

```

471480472-

However, if you want to get only headers, it might be better to use `HEAD` request method. Usage of this method will obviate the need for consumption or cancelling of the response body. See [MDN - HTTP - HTTP request methods - HEAD](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/HEAD) for more details.

473-474-

```js

475-

const headers = await fetch(url, { method: 'HEAD' })

476-

.then(res => res.headers)

477-

```

478-479481

#### Forbidden and Safelisted Header Names

480482481483

* https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name