这个问题很基础;但我很困惑,所以如果你被激怒了,我很抱歉。我只知道 CGI 是一种标准/协议。
1> mod_(perl/python/ruby) 是 CGI 的实现还是替代方案?
2> 如果它是一种替代方案,那么从概念上讲,它是否类似于 Java Servlet?
这个问题很基础;但我很困惑,所以如果你被激怒了,我很抱歉。我只知道 CGI 是一种标准/协议。
1> mod_(perl/python/ruby) 是 CGI 的实现还是替代方案?
2> 如果它是一种替代方案,那么从概念上讲,它是否类似于 Java Servlet?
mod_(perl/python/ruby) 是 CGI 的替代方案 - mod_[somebinding]
apache 模块试图通过使用 Apache 的本机接口来避免 CGI 的性能损失。
mod_[somebinding]/Apache
和之间的类比Servlets/Java Application Server
是有效的,但我更喜欢类似的东西
Webserver -> mod_[somebinding] -> Library in somebinding
Webserver -> Java Application Server -> Servler
不,CGI 是一个接口标准,而 mod_* 是 Apache Http Server 的模块。例如,您可以在任何 Web 服务器下使用任何语言的 CGI(FastCGI 或 SCGI)。Ruby 世界中的替代方案是应用程序服务器,如 Unicorn,GitHub 的人使用它。