CNode

一个大小写问题引发的ECONNRESET

问答
Ssunyoboy发布于10 年前最后回复10 年前2 回复10956 浏览0 收藏

使用Request模块发起HTTP请求导致Error: read ECONNRESET,使用Postman,curl都能正确得到响应。忙了一下午,通过tcpdump抓包、WireShark查看抓包信息,发现Request模块发送HTTP请求Host字段为小写host,我们的服务器只支持大写所以导致Error: read ECONNRESET。 解决问题很简单了,找到request模块的request.js文件,大约290行左右 var hostHeaderName = self.originalHostHeaderName || 'host' self.setHeader(hostHeaderName, self.uri.hostname) 改为 var hostHeaderName = self.originalHostHeaderName || 'Host' self.setHeader(hostHeaderName, self.uri.hostname) 这到底算不算Bug哪?

查看回复

回复 (2)

L
leizongmin#1·10 年前

是Bug,不过是你们服务器的。

Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive. 引用自 http://stackoverflow.com/questions/5258977/are-http-headers-case-sensitive

参与回复
登录后即可参与回复。登录