CGI是一个通用网关接口.顾名思义,它是所有东西的"通用"网关接口.从这个名字来看,它是如此微不足道和天真.我觉得我理解这一点,每次遇到这个词时我都会感受到这一点.但坦率地说,我没有.我还是很困惑.
我是一名具有Web开发经验的PHP程序员.
用户(客户端)请求页面---> webserver( - >嵌入式PHP解释器)---->服务器端(PHP)脚本---> MySQL服务器.
现在说我的PHP脚本可以从MySQL服务器和MATLAB服务器以及其他一些服务器获取结果.
那么,现在PHP Script是CGI吗?因为它的网络服务器和所有其他服务器之间的接口?我不知道.有时他们称CGI为技术,有时他们称CGI为程序或其他服务器.
CGI究竟是什么?
最重要的是什么/cgi-bin/*.cgi?怎么了?我不知道cgi-bin服务器上的这个目录是什么.我不知道为什么他们有*.cgi扩展名.
为什么Perl总是挡路.CGI和Perl(语言).我也不知道这两个是怎么回事.几乎所有的时间我一直听到这两个组合"CGI&Perl".这本书是另一个很好的例子,用Perl进行CGI编程.为什么不"使用PHP/JSP/ASP进行CGI编程"?我从未见过这样的事情.
C语言中的CGI编程让我很困惑." 在C "?? 认真?我不知道该说些什么.我只是困惑." 在C "?? 这改变了一切.程序需要编译和执行.这完全改变了我对网络编程的看法.我什么时候编译?如何执行程序(因为它将是一个机器代码,因此它必须作为一个独立的进程执行).它如何与Web服务器通信?IPC?并使用套接字编程与所有服务器(在我的示例MATLAB和MySQL中)连接?我迷路了!!
人们说CGI已被弃用,不再使用了.是这样吗?什么是最新的更新?
有一次,我遇到了必须给HTTP PUT请求访问Web服务器(Apache HTTPD)的情况.它很久了.所以,据我记得这就是我所做的:
编辑了Apache HTTPD的配置文件,告诉webserver将所有HTTP PUT请求传递给某些人
put.php(我必须编写这个PHP脚本)实现put.php来处理请求(将文件保存到提到的位置)
人们说我写了一个CGI脚本.说真的,我不知道他们在说什么.
我希望你明白我的困惑是什么.(因为我自己不知道我在哪里感到困惑).我请求你们尽可能简单地保持你的答案.我真的无法理解任何花哨的技术术语.至少在这种情况下不是.
编辑:
我发现这个惊人的教程"CGI编程很简单!" - CGI教程,以最简单的方式解释概念.阅读本文后,您可能需要阅读C语言中的CGI编程入门,以补充您对实际代码示例的理解.我还将这些教程的链接添加到维基百科的文章中:http://en.wikipedia.org/wiki/Common_Gateway_Interface
我有一个Bluehost帐户,我可以在其中运行Python脚本作为CGI.我想这是最简单的CGI,因为要运行我必须在以下内容中定义.htaccess:
Options +ExecCGI
AddType text/html py
AddHandler cgi-script .py
Run Code Online (Sandbox Code Playgroud)
现在,每当我使用Python查找Web编程时,我都会听到很多关于WSGI以及大多数框架如何使用它的信息.但我只是不明白它是如何组合在一起的,特别是当我的Web服务器被给出时(Apache在主机的机器上运行)而不是我真正可以玩的东西(定义.htaccess命令除外).
WSGI,CGI和框架是如何连接起来的?如果我想在我的基本CGI配置上运行Web框架(比如web.py或CherryPy),我需要知道,安装和执行什么操作?如何安装WSGI支持?
嘿,我在运行.NET framework 4.0网站时遇到了问题IIS7.0.我得到的错误是:
HTTP错误404.2 - 未找到"由于Web服务器上的ISAPI和CGI限制列表设置,无法提供您请求的页面".
Module : IsapiModule ,
Notification : ExecuteRequestHandler,
Handler : PageHandlerFactory-ISAPI-4.0_32bit ,
Error Code : 0x800704ec
Run Code Online (Sandbox Code Playgroud) 每当我读WSGI或CGI时,我都会感到畏缩.我之前尝试过阅读,但没有真正陷入困境.
用简单的英语真的是什么?
它只是将请求传递给终端并重定向输出吗?
我有一个不工作的Perl脚本,我不知道如何开始缩小问题范围.我能做什么?
注意:我正在添加问题,因为我真的想要将非常冗长的答案添加到Stackoverflow.我在其他答案中保持外部链接,它值得在这里.如果你有什么要补充的话,不要害怕编辑我的答案.
我只是想知道不同CGI的差异和优势是什么.哪一个最适合python脚本,以及如何告诉脚本使用什么?
我有一个Ruby CGI(不是rails),可以从Web表单中选择照片和标题.我的用户非常热衷于使用智能引号和连字,他们正在从其他来源粘贴.我的网络应用程序不能很好地处理这些非ASCII字符,是否有一个快速的Ruby字符串操作例程可以摆脱非ASCII字符?
如果我有一个由文件夹和文件组成的静态数据库,访问和操作会比SQL服务器类型数据库更快,考虑到这将用于CGI脚本吗?
使用文件和文件夹时,有哪些提高性能的技巧?
我想配置运行的Apache 2 Kubuntu来执行Perl CGI脚本.我尝试了谷歌搜索遇到的一些步骤,但似乎没有任何效果.
实现这一目标的正确方法是什么?
我一直在玩我自己的网络服务器(Apache + Ubuntu)和python.从我所看到的有三种(?)主要方式:
我记得读过Django更喜欢mod_wsgi,我对学习Django很感兴趣(我听说他们的官方教程非常优秀).
什么是"推荐"设置?我认为没有理由再使用mod_python了,但处理.py作为cgi和mod_wsgi之间的区别是什么?是否有可能同时运行它们(你想要吗?),或者这只是一个荒谬的想法,我应该停止思考这些疯狂的事情?
我想我真的只是在寻找关于Apache + Python的入门知识(链接也很好) - 到目前为止我所遇到的一切都非常有用 - 它们主要是指导方针.