【问题标题】:Alternative to cgi-bincgi-bin 的替代品
【发布时间】:2011-03-26 09:02:45
【问题描述】:

This question 询问“基于 cgi-bin”服务的缺点。据我所知,除了命名约定之外,就基于 Web 的客户端/服务器交互而言,这些年来并没有太大变化。当然现在可以选择使用 AJAX 客户端,但最终它们仍然是无状态的,并且服务器上的代码,无论它是用什么语言编写的,仍然等待通过“GET”或“POST”方法发送输入。

就网络编程而言,我已经脱离了循环很长一段时间了,我是否遗漏了一些明显的东西?

为了澄清我的问题:我提到的问题表明基于“cgi-bin”的系统已不再使用,新的替代方案是什么?

@sarnold。谢谢您的回答。就这样我 100% 确定这一点,即使一个系统是使用“最新最好的”服务器平台开发的(我想这将是一个基于 .net 的系统或 Linux 等效系统),它最终仍然只是一个程序,或程序,正在运行(如果使用快速 cgi)或等待在服务器上启动,因此这些年来确实没有任何变化。如果是这样的话,Brian 在他的question? 中指的是什么替代方案@

【问题讨论】:

    标签: language-agnostic


    【解决方案1】:

    最大的变化出现在像 mod_php 这样的工具中,它直接在 Web 服务器的地址空间中执行代码,FastCGI 实现了与 CGI 协议几乎相同的东西,但有一些长期存在的进程,而不是 fork(2) + execve(2) 为每个请求分配一个新的解释器。

    当然,这两种方法都有问题:直接在 Web 服务器的地址空间中执行解释器可能会降低可靠性和安全性:服务器(通常)一直以相同的权限运行,因此分离用户是 (通常)不可能。此外,解释器中的缺陷可能很常见,因此它不是共享托管环境的好解决方案,因为任何用户都可以使用访问系统上所有其他用户的所有数据所需的权限运行任意代码。

    FastCGI 方法几乎保持相同的速度;它确实牺牲了一些在进程之间复制数据的速度,但这对于除了 huge 卷站点之外的任何人来说都不是什么大问题。但是,您可以将多个 FastCGI 系统作为附加到单个“Web 服务器”不同位置的不同用户帐户运行(例如,http://example.com/public/ 在帐户 www-public 下运行,http://example.com/private/ 在帐户 www-private 下运行),并且 FastCGI系统不需要以与 Web 服务器相同的权限运行。

    当然,还有servlet systems 服务器调用链接到服务器进程的已编译回调(通常编译为字节码)代码。少了“脚本”的感觉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2010-09-13
      • 1970-01-01
      • 2014-12-30
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多