特定のクライアントからの大きな POST ファイルのアップロードを受け入れる PHP Web アプリケーションに取り組んでおり、ファイルが HTTP/1.1 100 を使用してアップロードされる前に、(サイズだけでなく、さまざまなヘッダーやその他の要因に基づいて) これらのアップロードを受け入れまたは拒否したいと考えています。継続する。
HTTP/1.1 仕様 8.2.3からのいくつかの簡単な背景:
100 (Continue) ステータス (セクション 10.1.1 を参照) の目的は、リクエスト本文を含むリクエスト メッセージを送信しているクライアントが、オリジン サーバーがリクエストを受け入れるかどうかを (リクエスト ヘッダーに基づいて) 判断できるようにすることです。クライアントがリクエストボディを送信する前。場合によっては、サーバーが本文を確認せずにメッセージを拒否する場合、クライアントが本文を送信することは不適切または非常に非効率的である可能性があります。
問題は、Apache がクライアントから Expect: 100-continue を認識し、PHP が処理を開始する前に 100 Continue を返し、ファイルのアップロードを受け入れることです...ただし、Expect: 100-continue の直後に処理を開始するには、PHP が必要です。これが可能かどうかわからないので、2つの質問があります。
- Expect: 100-continue の直後に PHP の処理を開始することは可能ですか?
- そうでない場合、良い代替手段は何ですか?
私は現在、クライアントが最初に POST と同じヘッダーを持つ HEAD リクエストを送信するように指定して、100 の継続をエミュレートすることを考えています。その後、webapp は、POST またはエラー コードを続行するための応答を返すことができます。他の提案は大歓迎です!