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
我一直在尝试这个很长一段时间,并没有很好的结果.
var myObserver = {
observe: function(subject, topic, data)
{
if (topic == "http-on-examine-response")
{
// implement later
}
else if(topic == "http-on-modify-request")
{
// implement later
}
},
QueryInterface : function (id)
{
if (id.equals(Components.interfaces["nsIObserver"]) ||
id.equals(Components.interfaces["nsISupports"]))
{
return this;
}
throw Components.results.NS_NOINTERFACE;
}
};
var obs = new Service("observer-service", "ObserverService");
obs.addObserver(myObserver, "http-on-modify-request", false);
Run Code Online (Sandbox Code Playgroud)
基本上,http-on-modify-request我知道如何检查URI,找出与之关联的窗口(如果有的话)以及其他一些东西.我无法弄清楚的是如何重定向请求,我知道这是可能的,因为我可以在发出任何请求之前获得nsIHttpChannel.
谁知道该怎么办?:/我一直试着打了几个星期,然后无处可去.
我一直在用Twitter.sharedInstance().session()?.userNameiOS(在Swift中)的Label中显示用户的推特地址.现在我注意到我们得到以下弃用警告:
- [Twitter会话]很快将被弃用.如果用户管理多个用户,建议用户使用 - [TWTRSessionStore session]或 - [TWTRSessionStore sessionForUserID:]
我切换到推荐的方式,并期望找到一个.userName属性,但找不到一个.
人们如何才能Twitter.sharedInstance().session()?.userName继续前进呢?
我之前从未使用过wxWidgets,我很想尝试一下,但是我已经遇到了一百万个问题.
我在Visual Studio 2010上使用wxWidgets 2.9.1.我已经完成了批量构建,以在每个配置中构建每个项目.
我已将include和lib引用添加到我的项目中.
当我尝试编译简单的"Hello,World!"时 程序,我收到此错误:
Error 1 error C1083: Cannot open include file: '../../../lib/vc_lib/msw/wx/setup.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我检查了我的lib/vc_lib文件夹,确实没有找到"msw"文件夹.只有"mswu","mswud","mswunivu"和"mswunivd".
有谁知道发生了什么?:/
弃用注意:jQuery 1.8中不推荐使用jqXHR.success(),jqXHR.error()和jqXHR.complete()回调.要准备最终删除的代码,请使用jqXHR.done(),jqXHR.fail()和jqXHR.always().
我目前编码如下:
$.ajax({
url: '...',
success: function(){
alert('AJAX successful');
}
});
Run Code Online (Sandbox Code Playgroud)
我打算使用jQuery 1.8+
我应该将success密钥更改done为:
$.ajax({
url: '...',
done: function(){
alert('AJAX successful');
}
});
Run Code Online (Sandbox Code Playgroud)
?
Per React关于PropTypes的文档:
请注意,出于性能原因
propTypes,仅在开发模式下进行检查.
但是,当我使用Webpack构建我的应用程序时,我看到我已经在最终包中定义的propTypes.
我正在将NODE_ENV设置为生产.这种行为有望吗?
我的理论:
虽然PropType定义仍在生产代码中,但会跳过PropTypes验证.如果这个理论是正确的,那么在prod代码中是否有剥离PropTypes的最佳实践?
我有一个具有多个阶段的管道,并且我想仅在“ n”个阶段之间而不是所有阶段之间重用docker容器:
pipeline {
agent none
stages {
stage('Install deps') {
agent {
docker { image 'node:10-alpine' }
}
steps {
sh 'npm install'
}
}
stage('Build, test, lint, etc') {
agent {
docker { image 'node:10-alpine' }
}
parallel {
stage('Build') {
agent {
docker { image 'node:10-alpine' }
}
// This fails because it runs in a new container, and the node_modules created during the first installation are gone at this point
// How do I reuse the …Run Code Online (Sandbox Code Playgroud) Guzzle的API文档在哪里?
有这两个链接(看起来是一样的):
但是我无处可以找到深入的API文档(甚至只是从Gublock源代码中整齐地创建的Docblocks生成的基本文档).
有谁知道在哪里找到它?