え そうだっけ?
たまにしか使わないものの あまり遅かった記憶がないです
あまり重たい処理をさせないのと ほとんどは静的ファイルのサーブ目的なので一つずつ処理しても遅いと感じてなかっただけなのかもしれません
せっかくので試してみました
PHP ファイルは sleep を入れて時間がかかるようにします
[a.php]
<?php
sleep(5);
echo 'ok';
Node.js を使って適当にリクエストを送ります
レスポンスが来たらリクエストの送信時刻(s)とレスポンスの受信時刻(e)をあわせて表示してます
> request()
{
s: 2024-03-08T14:59:55.767Z,
e: 2024-03-08T15:00:00.775Z
}
> request()
2024-03-08T15:00:03.111Z
{
s: 2024-03-08T15:00:03.111Z,
e: 2024-03-08T15:00:08.128Z
}
> request()
> request()
> request()
> request()
{
s: 2024-03-08T15:00:11.991Z,
e: 2024-03-08T15:00:16.997Z
}
{
s: 2024-03-08T15:00:12.783Z,
e: 2024-03-08T15:00:22.000Z
}
{
s: 2024-03-08T15:00:13.583Z,
e: 2024-03-08T15:00:27.000Z
}
{
s: 2024-03-08T15:00:14.222Z,
e: 2024-03-08T15:00:32.001Z
}
連続してリクエストしたときに 2 つめは 10 秒後というふうに 5 秒ずつ遅れてきてるので 1 つずつ処理されてるようですね
ちなみにサーバー側のログ
[Fri Mar 8 14:59:55 2024] 127.0.0.1:33850 Accepted
[Fri Mar 8 15:00:00 2024] 127.0.0.1:33850 [200]: GET /a.php
[Fri Mar 8 15:00:00 2024] 127.0.0.1:33850 Closing
[Fri Mar 8 15:00:03 2024] 127.0.0.1:33852 Accepted
[Fri Mar 8 15:00:08 2024] 127.0.0.1:33852 [200]: GET /a.php
[Fri Mar 8 15:00:08 2024] 127.0.0.1:33852 Closing
[Fri Mar 8 15:00:11 2024] 127.0.0.1:33854 Accepted
[Fri Mar 8 15:00:16 2024] 127.0.0.1:33854 [200]: GET /a.php
[Fri Mar 8 15:00:16 2024] 127.0.0.1:33854 Closing
[Fri Mar 8 15:00:16 2024] 127.0.0.1:33856 Accepted
[Fri Mar 8 15:00:16 2024] 127.0.0.1:33858 Accepted
[Fri Mar 8 15:00:21 2024] 127.0.0.1:33856 [200]: GET /a.php
[Fri Mar 8 15:00:21 2024] 127.0.0.1:33856 Closing
[Fri Mar 8 15:00:21 2024] 127.0.0.1:33860 Accepted
[Fri Mar 8 15:00:26 2024] 127.0.0.1:33858 [200]: GET /a.php
[Fri Mar 8 15:00:26 2024] 127.0.0.1:33858 Closing
[Fri Mar 8 15:00:31 2024] 127.0.0.1:33860 [200]: GET /a.php
[Fri Mar 8 15:00:31 2024] 127.0.0.1:33860 Closing
レスポンスを返して Closing した後に次のが Accepted になっています
本番向けじゃないと言う注意書きがありましたが こういう理由だったのですね