2009-05-12 12 views
1

状況:ユーザーがリンクをクリックすると、サーバーが要求を取得して処理を開始します。一方、ユーザーが別のリンクをクリックすると、サーバーは最初の処理を処理している間に新しい要求を取得します。何が起こるのですか?クライアント側では、2番目のリクエストのWebページのみが表示されますが、2番目のリクエストを受信したときに1番目のリクエストがサーバー上で終了したプロセスです。そしてそれはサーバか言語(ApacheかPHP)によって管理されていますか?サーバー側のWeb要求の処理

答えて

5

に依存します。ブラウザがサーバーへの接続を切断しない場合、クライアントが他の場所をナビゲートしていることは全く考えられません。接続が切断された場合、Webサーバーはその接続を検出して処理スレッドを中止するかどうかを選択します。

どちらの場合でも、これはHTTPのステートレス性の性質です。この点で何かに頼るべきではありません。

1

両方のリクエストが配信されます(ブラウザが2番目のリクエストを送信した場合)。

2番目のページしか表示されませんが、access_logを調べる場合は、2つの要求に気付くでしょう。

これはHTTPの仕組みです。

0

ignore_user_abort()を使用すると、接続が終了した後にスクリプトを続行する(またはしない)ことができます。

関連する問題