1

問題の説明

Express アプリ (Node.js) に HTTP POST 要求を行うと、サーバーは 2 つの「100 Continue」応答で応答し、その後「200 OK」応答で応答しますが、「100 Continue」は 1 つしかないはずです。

Postman は 2 番目の「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