当我尝试从 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();
选项中路径参数的长度为413。
有人遇到这个问题吗?这是服务端问题还是节点端问题?
请大家给点意见,非常感谢。
我想你会发现更多东西here https://github.com/nodejs/http-parser/blob/master/http_parser.c#L143
and here https://github.com/nodejs/http-parser/blob/678a9e21f11e5ea93e5e17a2302390f88a6a8c46/http_parser.h#L64
简而言之,Node.js 对标头大小有 80 KB 的限制,这对于 Web 上的大多数请求来说已经足够大了(例如 Apache 有 8190 字节的限制)。
如果该服务以某种方式具有如此巨大的标头,您可以使用以下命令重新编译节点-DHTTP_MAX_HEADER_SIZE=xxxx
争论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)