进行http.request时发生HPE_HEADER_OVERFLOW异常

Ste*_*Gao 3 http node.js

当我尝试从REST服务获取数据时,遇到HPE_HEADER_OVERFLOW错误,如下所示:

错误

var options = {
     host: "something.com",
     port: 80,
     path: "/somepath...",
     method: 'POST'
};

var request = http.request(options, function(res) {
	res.setEncoding('utf8');
	res.on('data', function(chunk) {
		// Do something
	});
	res.on('end', function() {
		// Do something 
	});
	request.on('error', function(e) {
		// Do something
	});
});

request.end();
Run Code Online (Sandbox Code Playgroud)

选项中路径参数的长度为413。

有人遇到这个问题吗?是服务端问题还是节点端问题?

请给我一些想法,非常感谢。

rah*_*202 6

node app.js --max-http-header-size=80000

他们使标题大小可配置。检查以下链接。

https://nodejs.org/api/cli.html#cli_max_http_header_size_size

https://github.com/nodejs/node/issues/24692


loa*_*age 5

我想你会在这里这里找到更多的东西

简而言之,Node.js的标头大小限制为80 KB,足以满足Web上的大多数请求(例如Apache的限制为8190字节)。如果该服务以某种方式具有如此巨大的头,则可以使用-DHTTP_MAX_HEADER_SIZE=xxxx参数重新编译节点。