問題タブ [http-status-code-100]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
520 参照

.net - Expect 使用時の失敗の処理: 100-Continue with HttpClient

REST API を呼び出すクライアントの動作を最適化することに関心があります。この API では、特定の POST 操作でIf-None-Match: *ヘッダーを含めることができます。これにより、アップロードされているアイテムがシステムに既に存在する場合、サーバーは HTTP 412 応答を報告します。とともに使用すると、 RFC 2616 §8.2.3で説明されているように、サーバーは 100 応答を送信する代わりExpect: 100-continueに412で応答します。クライアントでこの状態を検出し、この場合はリクエストの本文を送信しないようにしたいと思います。

を直接操作する場合HttpWebRequest、これを実装するのはかなり簡単です。GetRequestStream(または)を呼び出した後GetRequestStreamAsync、結果の にデータを書き込む前Streamに、コードでプロパティをチェックする必要がありHaveResponseます。値が の場合true、リクエスト ストリームを閉じて、呼び出しに進みますGetResponseAsync

HttpClient現在、直接作業するのではなく、使用するように移行する作業を行っていHttpWebRequestます (複数のプラットフォームでのサポートを改善するため)。現在StreamContent、リクエストの本文を表すために を使用しており、サーバーが 100 または 412 レスポンスを送信したかどうかに関係なく、ストリームのコンテンツが送信されることを観察しています。の代わりにHttpClientandを使用して、上記と同様の最適化を実行するにはどうすればよいですか?HttpRequestMessageHttpWebRequest

0 投票する
1 に答える
2899 参照

scala - curl、play、expect 100 continue ヘッダー

POST リクエスト (アップロード用) を除いて、play で作成された Web サービスを検討してください。これを中サイズの画像(〜75K)でテストすると、奇妙な動作が見つかりました。まあ、コードは長い説明よりも明確に話すので、次のようになります。

ご覧のとおり、curl は header を追加することを決定しましたContent-Length: 27442が、実際のサイズは 75211 であり、プレイ中、ボディのサイズは 27442 しかありませんでした。これは意図した動作ではありません。libwww-perlのツールcurlを使用する代わりに、別のツールを試しました。POST

このリクエストは成功しました。そのため、ツールの違いにもっと注意を払うようになりました。まず、Content-Lengthヘッダーは正しかったのですがExpect、2 回目の試行でヘッダーが欠落していました。どちらの方法でもリクエストが成功することを望みます。request.headersそのため、( 経由で)プレイで見られるヘッダーの完全なリストは次のとおりです。

カールの場合:

libwww-perl POST の場合:

したがって、私の現在の考えは次のとおりです。より単純な perl ツールは単一のリクエストを使用しましたが、これは悪い習慣です。より良い方法は、確認を待つこと100 continueです (特に、数 GB のデータをアップロードする場合は...)。不正なリクエスト エラー コードcurlを受信するまでデータを送信し続けます。200 OKでは、なぜ play200 OKは次のチャンクを待たずに応答を送信するのでしょうか? curlが間違って指定しているためContent-Lengthですか?まったく間違っている場合... (おそらく、これは現在のチャンクのサイズを指しますか?)。では、問題はどこにあるのでしょうか。curl または play webapp で? どうすれば修正できますか?

0 投票する
0 に答える
487 参照

http - Amazon S3 が 100 を返さない

S3にファイルをアップロードしたい。httpconnnection(s3.amazonaws.com) を作成し、head={'Date': 'Fri, 18 Jul 2014 03:24:08 +0000', 'Host': 'xx-bucket.s3.amazonaws' を送信します。 .com', 'Content-Length': 32, 'Authorization': 'AWS AKIAI2V3MxxxOOKYAAA:JrjeT5rTxCl752tMWEZ0knEE3Zw=', 'Expect': '100-continue'}.

次に、s3がステータス100を返すのを待っています。悲しいことに、s3 は戻りません。この状況は 1 週間前には発生しませんでした。

httpSconnection(s3.amazonaws.com) を使用すると、s3 はステータス 100 continue を返します。何が起こった?

0 投票する
2 に答える
2593 参照

c# - Web API コントローラーから POST 要求をリダイレクトするときの 100-continue の処理

ApiControllerHTTP のステータス コード 307 を介してリダイレクトすることにより、POST 要求に応答する があります。これは、ヘッダーからの情報のみを使用して行われるため、このアクションでは要求の本文は必要ありません。このアクションは次と同等です。

これは簡単ですが、改善したい点が 1 つあります。リクエストの本文には大量のデータが含まれる可能性があるため、HTTP ステータス コード 100 を利用して、このリクエストをより効率的にしたいと考えています。コントローラーをそのまま使用すると、会話は次のようになります。

リダイレクト アクションではリクエスト ボディは必要ないため、会話を次のように短縮できるようにしたいと考えています。

これを達成する方法を調査するために 1 日の大部分を費やしましたが、解決策を思いつくことができませんでした。私の研究では、次のことを学びました。

  • ApiControllerのアクションが実行されるとき、100 Continueはすでに送信されています。
  • ApiController作成された時点で、100 Continueはすでに送信されています。
  • HttpApplicationPreRequestHandlerExecuteイベントがトリガーされたときに、100 Continue応答が送信されていません。
  • DelegatingHandler実行されると、100 Continueはすでに送信されています。

これに基づいて、これまでに思いついた最善の解決策は、問題の がリクエストの受信者である場合に、 onHttpModuleを使用してレスポンスをオーバーライドするを作成することです。ただし、これはいくつかの理由 (コードの分離、Web API のパラメーター バインディングを利用しない、および の追加ロジックをバイパスする) により、理想的なソリューションとはほど遠いものです。RouteDataRequestContextApiControllerAuthorizeAttributeApiController

これにはもっと良い解決策があるように思えますがExpect: 100-continue、Web API アプリケーションでヘッダーを適切に処理する方法に関する情報はほとんど見つかりませんでした。ヘッダーを適切に処理するためにこれを実装する最も簡単な方法は何でしょうか?ApiControllerExpect: 100-continue

0 投票する
1 に答える
434 参照

c# - C# Owin Self Host - 予想されるヘッダー 100-continue

セルフホスティングで OWIN を使用すると問題が発生しました。コンソール アプリケーションから Web サーバーを実行しています。IIS では実行されていません。

HTTP 100-continue 仕様: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3

OWIN 100-continue 仕様: http://owin.org/html/owin.html

何を/どこで/どのように処理する必要がありますか:リクエストの 100-continueヘッダー? シンプルなブートストラップを使用しています:

0 投票する
1 に答える
75 参照

php - JSON HTTP POST を受信する PHP スクリプトで HTTP 応答を特別に処理する必要がありますか?

前回の質問がうまく書けなかったので、もう一度やり直します。

以下のリクエストPHPを処理するためのスクリプトを書いています。JSON HTTP POST

の末尾 8 桁のメールのみを自分に送信したいmobileNumber

ブラウザを開いてページに移動するとmysite.com/json.php、メールが送信されますが(番号なし)、POSTリクエストが送信されても​​何も起こりません。

ヘッダーで示されているように、クライアントは を要求している可能性があります100-continue(posttestserver.com でテストする場合)。

PHP スクリプトで HTTP 応答を具体的に処理する必要がありますか?

0 投票する
0 に答える
296 参照

node.js - Express API は、1 つだけを返す必要がある場合に、重複した「100 続行」応答を返します。

問題の説明

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」のみが返されます。

ローカル/サーバーで実行しているときに、まったく同じアプリが異なる応答を返す理由がわかりません。

応答例

複数の「100 Continue」応答が発生する原因と、それらを防ぐ方法を教えてください。

アプリがローカル マシンで "100 Continue" 応答をまったく返さないため、これを引き起こしているサーバー/ファイアウォールに何かある可能性がありますか?