cgi文件怎么打开 .cgi是什么文件
作者:dthost |
时间:2017-12-14 |
分类:未分类 |
18,533 次阅读
cgi格式文件是“公共网关接口脚本”类型文件,可理解是一个可执行的脚本。可以使用Python、Perl、Ruby等语言进行创建。cgi脚本通常用于运行基本的Web脚本,比如在Web窗口中发送电子邮件等。
cgi文件怎么打开?
cgi格式文件它是一种常见的代码文件,正如您所了解的代码文件都是文本格式的,这意味着打开cgi格式文件的方法有很多。无论您使用的是Windows、Mac OS X、Linux,都可使使用系统里面都自带的文本编辑器来打开及编辑cgi文件,您所需要做的只是双击它即可。改文件属性需在服务器上改,不过NT和LINUX/UNIX下是有区别的。
NT文件属性值不用更改,IMAGE文件也可以放到CGI-BIN目录内LINUX/UNIX是要改属性的,IMAGE方面的文件不能放到CGI-BIN目录内,必须在CGI-BIN目录外另建目录,否则图片无法显示。
cgi格式的文件是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。绝大多数的cgi格式的程序被用来解释处理杰自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。cgi程序使网页具有交互功能。 cgi文件怎么打开?
可以用记事本类的文字编辑工具打开。[最好不要用DW等网页编辑软件打开,因为它们会自动添加代码。]改文件属性需在服务器上改,不过NT和LINUX/UNIX下是有区别的。
NT文件属性值不用更改,IMAGE文件也可以放到CGI-BIN目录内LINUX/UNIX是要改属性的,IMAGE方面的文件不能放到CGI-BIN目录内,必须在CGI-BIN目录外另建目录,否则图片无法显示。
任务易为自由职业工作者寻找和分析任务项目,并构建以任务为主题的社交平台。
对一个 CGI 程序,做的工作其实只有:从环境变量(environment variables)和标准输入(standard input)中读取数据、处理数据、向标准输出(standard output)输出数据。
环境变量中存储的叫 Request Meta-Variables,也就是诸如 QUERY_STRING、PATH_INFO 之类的东西,这些是由 Web Server 通过环境变量传递给 CGI 程序的,CGI 程序也是从环境变量中读取的。
标准输入中存放的往往是用户通过 PUTS 或者 POST 提交的数据,这些数据也是由 Web Server 传过来的。
就比如,我们刚学 C 语言时写的 Hello World,也可以作为一个合法的 CGI 程序。
现在用 CGI 的已经很少了,因为每个 CGI 进程只处理一个请求,换句话说,每个请求都需要创建一个 CGI 进程处理,CGI 程序处理完毕后就退出了。
FastCGI 正是对 CGI 的改进,而且改进了不是一点点。
从总体上看,一个 FastCGI 进程可以处理若干请求(一般 FastCGI 进程是驻留着的,但不排除 IIS 之类的 Web Server 限制其空闲时间,在一段时间内没有请求就自动退出的可能),Web Server 或者 fpm 会控制 FastCGI 进程的数量。
细节方面,FastCGI 是一套协议,不再是通过简单的环境变量、标准输入和标准输出来接收和传递数据了。一般来说,FastCGI 用 TCP 或者命名管道(Named Pipe)传输数据。
现在绝大多数 PHP 网站都是在用 FastCGI 的。
因此,这个问题的答案取决于题主对 CGI 的理解。
CGI 的意思是啥?不是一种语言,也不是一种技术,而是一种模式
搜索一下CGI的定义
Common Gateway Interface,简称CGI。在物理上是一段程序,运行在服务器上,提供同客户端 HTML页面的接口
“通用网关接口”,这就是CGI的中文意思。也没人规定CGI一定是用PERL写的。
换句话,只要是提供HTML的服务器端程序都可以叫CGI,APS、PHP、JSP这些都是,你用C语言写一个可以提供HTML的服务器端EXE文件,也叫CGI。
不知道我的回答是否明确,希望能对你有所帮助。
C++课设并没有限制一定使用MFC 所以我们组一直致力于寻找更好的方案解决界面美观度的问题(有种更好的方法是利用c#写界面这样可以和程序分离开 但当时选题的时候我们并不知道这种方法)
所以选择了WEB应用(c/s模式) 利用C++作为服务器端语言,利用古老的CGI技术进行交互。
由于CGI的不方便性 该技术早已被ASP等技术取代 所以请大家绕行 本文的目的在于那些误入CGI歧途的人一个出坑的道路 并且证明CGI还是能行得通的
****************************************************************************************************************
CGI的基本原理就不向大家介绍了 我们的项目利用AJAX技术向后台请求数据 后台利用ADO向数据库读写数据 然后直接COUT给前台
1.注意编码问题!
首先是汉字在网络传输时的变化 前台向后台传的时候会自动转换成UTF-8(URL)格式的编码 后台需要先解码再使用这些数据
其次 数据库与cgi程序之间有时需要转码
在线编码转换这个网站可能会在编码问题上帮助你
2.动态sql
利用win32控制台程序 向数据库写入数据 需要用到动态sql 这个问题需要字符串格式的统一 所以会花一点功夫
注意APACHE的服务器不支持ADO的方式 所以请使用IIS服务器
3.不要在cgi程序里加入例如system("pause")这类的语句 会导致cgi程序不结束 无法返回给前台数据(响应超时)
造成服务器内存不足 会报w3wp.exe错误 这时应该重启服务器 删掉相关语句
4.SESSION登录控制 CGI可以通过环境变量设置COOKIE 但是在AJAX情况下不适用 所以请利用JAVASCRIPT设置
cgi
cgi是一个web server与cgi程序(这里可以理解为是php解释器)之间进行数据传输的协议,保证了传递的是标准数据。
php-cgi
php-cgi是php解释器,就是上文提到的cgi程序。
Fastcgi
Fastcgi是用来提高cgi程序(php-cgi)性能的方案/协议。
cgi程序的性能问题在哪呢?"PHP解析器会解析php.ini文件,初始化执行环境",就是这里了。标准的CGI对每个请求都会执行这些步骤,所以处理的时间会比较长。
Fastcgi会先启一个master,解析配置文件,初始化执行环境,然后再启动多个worker。当请求过来时,master会传递给一个worker,然后立即可以接受下一个请求。这样就避免了重复劳动,效率自然提高。而且当worker不够用时,master可以根据配置预先启动几个worker等着;当然空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是Fastcgi的对进程的管理。
php-fpm
上文提到了Fastcgi只是一个方案或者协议,那么php-fpm就是这个实现了Fastcgi的程序,也就是说,上文所描述的进程分配和管理是FPM来做的。官方对FPM的解释是 Fastcgi Process Manager(Fastcgi 进程管理器) 。
PHP对并发访问的处理
进程和线程
PHP从代码级别来讲不支持多线程操作,不能像Java、C#等语言一样可以编写多线程代码。但多线程和并发没有直接关系,多线程只是代码被运行时在同一时间同时执行多个线程任务,来提高服务器CPU的利用率,提高代码效率。但php是可以多进程执行的,上文所述的FPM进程管理机制就是多进程单线程的,有效提高了并发访问的响应效率。