Web 服务器如何处理请求?

How does web server process the requests?

我使用 php 和 laravel 作为我的网络服务。

我想知道 laravel 在这些情况下是否存储和处理请求?

  1. 许多用户对不同控制器的请求;
  2. 同一用户对同一控制器的请求。

laravel是否按照请求到达的顺序将这些请求存储在队列中?

是否laravel并行处理不同用户的请求,并按顺序处理同一用户?

例如,用户有两个请求。这两个请求路由到同一控制器中的两个方法。虽然第一个请求将花费很长时间用于服务器端处理,但第二个请求将花费很少的时间。当用户设置第一个请求然后第二个请求时,虽然第二个请求花费的时间很少,但服务器端在处理完第一个请求之前不会处理第二个请求。

所以我想知道 laravel 如何存储和处理请求?

Laravel 不直接处理请求,这是由您的网络服务器和 PHP 管理的。 Laravel 收到您的网络服务器已经处理的请求,因为它只是一个工具,用 PHP 编写,它处理与请求调用相关的数据。因此,只要您的网络服务器知道如何执行 PHP 并调用正确的 index.php 文件,Laravel 就会启动并处理它从网络服务器收到的请求数据。

因此,如果您的网络服务器能够接收 2 个不同的调用(通常他们会收到数百个),它将尝试实例化 2 PHP(子)进程,您应该有 2 [=内存中 26=] 个实例 运行 并行。

因此,如果您的代码依赖于其他代码,根据许多其他因素,执行时间可能会太长,您必须在 Laravel 应用程序中自行处理。

我们通常做的是将数据添加到数据库,然后从数据存储中已有的数据进行计算得到结果。因此,数据到达数据存储的顺序无关紧要,哪个先进入,最终结果总是相同的。如果您不能依赖这种方法,则必须准备您的应用程序来处理它。

PHP 中的所有内容都作为一个单独的进程启动。这些进程相互独立,直到一些共享资源出现在图片中。

在您的情况下,一个用户处理一个会话,默认情况下会话是基于文件的。会话文件是进程的共享资源,这意味着您一次只能为一个用户调用 PHP。

多个用户可以同时调用任意数量的进程,具体取决于您的系统功能。