gpt4 book ai didi

php - Web 服务器如何处理请求?

转载 作者:IT王子 更新时间:2023-10-29 00:12:24 25 4
gpt4 key购买 nike

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

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

  1. 来自多个用户的不同 Controller 的请求;
  2. 来自同一用户的同一 Controller 的请求。

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

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

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

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

最佳答案

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

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

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

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

enter image description here

关于php - Web 服务器如何处理请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41255750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com