Http 这个错误是什么意思:HPE_无效_常数?

Http 这个错误是什么意思:HPE_无效_常数?,http,tcp,Http,Tcp,前几天,当我向NodeJS发出HTTP请求时,我收到了HPE\u INVALID\u CONSTANT。它们最近神秘地停止了发生,但我仍然困惑和好奇HPE\u INVALID\u CONSTANT到底想告诉我什么 我的谷歌搜索结果有点倾向于NodeJS,所以我没有选择任何更笼统地描述这意味着什么的内容。这看起来像是一个系统级错误,因为它都是CAP。我认为这个答案是过时的,但它可以帮助一些人 我也遇到了这个问题,并且意识到NodeJS不支持htp0.9,服务器的响应不包含头。事实上,在NodeJS

前几天,当我向NodeJS发出HTTP请求时,我收到了
HPE\u INVALID\u CONSTANT
。它们最近神秘地停止了发生,但我仍然困惑和好奇
HPE\u INVALID\u CONSTANT
到底想告诉我什么


我的谷歌搜索结果有点倾向于NodeJS,所以我没有选择任何更笼统地描述这意味着什么的内容。这看起来像是一个系统级错误,因为它都是CAP。

我认为这个答案是过时的,但它可以帮助一些人

我也遇到了这个问题,并且意识到NodeJS不支持htp0.9,服务器的响应不包含头。事实上,在NodeJS文档中显示了对1.0和1.1 http请求的支持


您可以在本期中阅读更多内容。

HPE\u INVALID\u常量表示
Http解析错误
,无效常量表示响应格式错误。所以解析器无法解析它

在请求URL中使用未解码的参数时,我也遇到了同样的问题

例如:

  • 请求
    http://someaddress.com?query=something 使用空格
    将导致错误

      Error: Parse Error
      at TLSSocket.socketOnData (_http_client.js:440:20)
      at emitOne (events.js:116:13)
      at TLSSocket.emit (events.js:211:7)
      at addChunk (_stream_readable.js:263:12)
      at readableAddChunk (_stream_readable.js:250:11)
      at TLSSocket.Readable.push (_stream_readable.js:208:10)
      at TLSWrap.onread (net.js:597:20)
    bytesParsed: 0,
    code: 'HPE_INVALID_CONSTANT',
    
  • 请求
    http://someaddress.com?query=something%20encoded%20with%20whitespaces
    可以正常工作


  • 我遇到这个问题是因为我试图压缩太小的文件。在我的具体案例中,我创建了一个83字节的文件的readstream,然后将其管道化到一个gzip中,最后将其管道化到响应中

    fs.createReadStream(file_path).pipe(gzip.createGzip()).pipe(res);
    
    在请求方,我当时正试图解压文件

    stream = request({"url": "https://example.com/getFile", "timeout": 200000});
    
    //This is where the error was getting thrown
    stream.pipe(gzip.createGunzip())
    

    似乎试图压缩然后解压一个大小小于200字节的文件会完全破坏这一点,所以我遇到了一个难题。我想我的故事的寓意是不要压缩超小的文件

    在我的情况下,我根本没有向NodeJS客户端返回任何东西。