1

问题描述

当向我的 Express 应用程序 (Node.js) 发出 HTTP POST 请求时,服务器会响应两个“100 Continue”响应,然后是一个“200 OK”响应,而此时应该只有一个“100 Continue”。

Postman 设法忽略第二个“100 continue”并报告成功,但我正在使用 Mule ESB 构建的另一个应用程序不接受额外的“100 continue”并失败。

否则应用程序会毫无问题地处理 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 Continue”响应,我该如何防止它们?

由于该应用程序在我的本地计算机上根本没有返回任何“100 Continue”响应,服务器/防火墙是否可能导致此问题?

4

0 回答 0