nodejs / nodejs/node

`req.getHeaders()` does not return values set using "rawHeaders" array

Offen
#64,405 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

http
Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.3k
Ø Merge
4 T. 2 Std.
Gemergte PRs (30 T.)
283

Beschreibung

Version

v24.18.0

Platform
Darwin MBPM.local 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun  9 22:28:29 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6030 arm64
Subsystem

http

What steps will reproduce the bug?

Headers set using the message.rawHeaders format are not available on the request's getHeaders() method

import { get } from 'node:http'

const request = get(
  'http://localhost:3000',
  {
    headers: ['foo', 'bar', 'baz', 'qux']
  },
  (res) => {
    let data = ''

    res.on('data', (chunk) => {
      data += chunk
    })

    res.on('end', () => {
      console.log(data)
    })
  }
)

request.on('error', () => {})

console.log(request.getHeaders()) // [Object: null prototype] {}
console.log(request.getHeaderNames()) // []
console.log(request.getRawHeaderNames()) // []
console.log(request._header) // GET / HTTP/1.1\r\nfoo: bar\r\nbaz: qux\r\nConnection: keep-alive

How often does it reproduce? Is there a required condition?

Always

What is the expected behavior? Why is that the expected behavior?

One would expect req.getHeaders() (and friends) to return a consistent value, whether an object or an array was passed as argument.

What do you see instead?

req.getHeaders() appears to be empty when request options are built using an array notation.

Additional information

No response

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie am node:http-Anforderungseinstiegspunkt und verfolgen Sie, wie das Array options.headers gespeichert wird, bevor getHeaders(), getHeaderNames() und getRawHeaderNames() aufgerufen werden. Reproduzieren Sie das Beispiel und überprüfen Sie anschließend, dass diese Methoden die Header konsistent mit Optionen in Objektform melden und dabei die ausgegebenen Anforderungs-Header erhalten.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, nodejs
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
52/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.