Web服务器如何处理请求?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (72)

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

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

  1. 向许多用户请求不同的控制器;
  2. 请求来自同一个用户的同一个控制器。

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

对于不同的用户,laravel并行处理请求,并且按顺序针对同一用户?

例如,来自用户的两个请求。这两个请求路由到同一控制器中的两个方法。虽然第一个请求花费很长时间才能进行服务器端处理,但第二个请求花费的时间很少。当用户设置第一个请求时,第二个请求设置第二个请求,尽管第二个请求花费很少时间,但服务器端在处理第一个请求之前不会处理第二个请求。

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

提问于
用户回答回答于

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

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

因此,如果代码依赖于其他代码,这可能需要很长时间才能执行,具体取决于许多其他因素,必须在Laravel应用程序中自己处理。

我们通常所做的只是将数据添加到数据库,然后从使用数据存储中已有数据的计算中得出结果。因此,数据到达数据存储区的顺序应该不重要,哪个先到达,最终结果总是相同。如果你不能依赖这种方法,你必须准备好应用来处理它。

用户回答回答于

PHP中的所有内容都是以一个独立的过程开始的 这些过程彼此独立,直到某些共享资源进入图片。

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

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

扫码关注云+社区

领取腾讯云代金券