【问题标题】:how a web server(apache) handles multiple HTTP requests, on the code levelWeb 服务器(apache)如何在代码级别处理多个 HTTP 请求
【发布时间】:2013-07-13 07:51:32
【问题描述】:

希望这不是显而易见的事情,只是想澄清一些我不完全确定的事情。我在观看有关如何实现缓存的教程时遇到了这个问题。似乎只需在服务器上添加一些全局缓存变量,就会为所有客户端实现缓存。我将 PHP 与 Apache 网络服务器一起使用。

我知道网络服务器可以接受多个客户端 HTTP 请求。我的问题是网络服务器代码会发生什么。

每次都执行相同的服务器代码吗?意味着保留了一些全局变量?或者对于每个新的 HTTP 请求,都会创建一个新的代码实例。如果是,这些多个实例是否相互连接或可以以任何方式相互了解?

【问题讨论】:

    标签: apache http webserver


    【解决方案1】:

    坏消息是 apache 服务器不支持这种工作。你必须使用一些中间的东西,比如数据库来处理这个。 然而,好消息是 node.js 以一种优雅的方式轻松完成这些工作:D

    【讨论】:

    • 现在改变 apache 不是一个选择。我的问题是 apache 在这方面是如何工作的。
    • apache 只是接收 http 请求,创建新会话并在每个会话中运行您的代码。所以一个会话不知道其他会话甚至全局变量。
    • 我看到的例子是在 python 中。语言在这方面与 php 有什么不同,或者他们使用了一些不同的网络服务器?
    • 我还没用过python。但是回到您的帖子,您是否正在考虑像 php 中的本机缓存之类的东西?如果为真,则说明您的方法错误。这不是 PHP 的工作方式,您必须使用其他一些外部内存,例如 memcached、数据库、文件……但正如我之前所说,Node.js 是另一个服务器端脚本,它的运行方式与 PHP 略有不同,它处理所有请求在一个进程中,所以本地缓存是可能的,我猜 python 像 Node.js 一样工作
    猜你喜欢
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 2022-07-20
    • 2015-08-08
    相关资源
    最近更新 更多