Express API仅应返回一个时,会返回重复的“ 100个继续”响应

时间:2019-05-09 11:22:35

标签: node.js rest express nginx-reverse-proxy http-status-code-100

问题描述

当对我的Express应用(Node.js)发出HTTP POST请求时,服务器将响应两个“ 100 Continue”响应,然后响应“ 200 OK”,此时应该只有一个“ 100 Continue”。 / p>

邮递员设法忽略了第二个“ 100继续”并报告成功,但是我使用Mule ESB构建的另一个应用程序不接受多余的“ 100继续”并失败了。

否则,该应用程序可以毫无问题地处理POST请求,将数据写入数据库等等。

关于技术环境

Express应用程序正在SUSE服务器上运行。 Nginx充当反向代理。我通过PM2管理多个Express应用。

起初,我使用带有代理程序包的独立Express应用程序充当反向代理程序。但是我转而使用Nginx作为反向代理,认为可能是问题所在。但这没什么区别。

我已经在本地计算机上尝试了与快速反向代理完全相同的设置,并且根本不返回“ 100 Continue”,仅返回“ 200 OK”。

我无法弄清楚为什么相同的应用在本地/服务器上运行时会返回不同的响应。

示例响应

**REQUEST**
POST /<my-endpoint> HTTP/1.1
Host: api.<my-server>.se:443
User-Agent: AHC/1.0
Connection: keep-alive
Accept: */*
Content-Type: application/json; charset=UTF-8
Content-Length: 123

**RESPONSE**
HTTP/1.1 100 Continue
Strict-Transport-Security: max-age=94608000
Date: Thu, 09 May 2019 10:11:34 GMT
Set-Cookie: WASID_HAG=f88cc3f3525ed06b; path=/; domain=.<my-domain>.se
Set-Cookie: WAAK_HAG=41ef118d9c4608f158cfbdcb0140e652; path=/; domain=.<my-domain>.se; secure
Set-Cookie: UPD=6; path=/; domain=.<my-domain>.se
Set-Cookie: RGSC16972=1030; path=/; domain=.<my-domain>.se

HTTP/1.1 100 Continue
Strict-Transport-Security: max-age=94608000
Date: Thu, 09 May 2019 10:11:34 GMT
Set-Cookie: WASID_HAG=f88cc3f3525ed06b; path=/; domain=.<my-domain>.se
Set-Cookie: WAAK_HAG=41ef118d9c4608f158cfbdcb0140e652; path=/; domain=.<my-domain>.se; secure
Set-Cookie: UPD=6; path=/; domain=.<my-domain>.se
Set-Cookie: RGSC16972=1030; path=/; domain=.<my-domain>.se

HTTP/1.1 200 OK
Server: nginx/1.16.0
Date: Thu, 09 May 2019 10:11:34 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 227
Access-Control-Allow-Origin: *
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Download-Options: noopen
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
ETag: W/"e3-aMSDU6iiOn52HqHZuJKLaZNt38k"
Set-Cookie: WASID_HAG=f88cc3f3525ed06b; path=/; domain=.<my-domain>.se
Set-Cookie: WAAK_HAG=41ef118d9c4608f158cfbdcb0140e652; path=/; domain=.<my-domain>.se; secure
Set-Cookie: UPD=6; path=/; domain=.<my-domain>.se
Set-Cookie: RGSC16972=1030; path=/; domain=.<my-domain>.se
Cache-control: no-store

什么可能导致多个“ 100个继续”响应,我该如何防止它们?

由于该应用程序在我的本地计算机上根本不返回任何“ 100 Continue”响应,因此服务器/防火墙可能会引起某些问题吗?

0 个答案:

没有答案