CGI是什么意思呀??
发布网友
发布时间:2022-04-26 00:21
我来回答
共8个回答
懂视网
时间:2022-05-11 06:25
CGI,一言以蔽之——协议。为了和普通的网络协议做区分,我们可以称之为接口协议。所谓协议就是各方约定,达成共识的一种规则。比如中国公路靠右行驶,这就是公路的协议。网络协议约定的是逐字节的含义,大家遵守,就能方便解析,理解。CGI约定的不是逐字节的语义,而是一个个kv(不完全是kv,但可以大概这么理解)。用一个不太恰当的比喻来形容,网络协议描述的单位是数组,而CGI接口协议描述的是map(或者说字典,或者说关联数组)。
CGI是古老的web技术,在php这类动态网页语言出现之前承担过一个时期的历史任务。当时多是用perl或c来编写CGI程序。前端通过表单或其他东西可以向服务器(比如Apache)发送一个URL,以及额外的参数(get或post等请求类型及其参数,服务器的信息等等),还有cookie等信息。那么Apache在开启 了cgi模块以后可以将其发送给一个CGI程序,这个程序可以是各种语言,比如c++(或c语言)就是从环境变量中解析出这样请求的具体参数。然后向标准输出输出内容(比如cout了一段HTML代码),这些内容没有被打印到控制台上,而是最终响应给了你的浏览器,渲染出了网页。重要一点是CGI程序记得要自己先输出http报头哦。缺点是每一次向CGI发送请求,都会生成一个CGI进程,,这种就是所谓的fork-and-exec模式,也通常是导致并发瓶颈的症结。反向代理加上大型的的分布式系统可以一定程度上减轻这些压力。
大浪淘沙,如今CGI几乎已经消失在了人们的视野中,然而它确实让你了解很多web底层知识的好工具。近年来由于fcgi的出现,一直以来被人们所诟病的fork-and-exec问题得到解决,使得CGI多少又浮出了一点水面。
顺带一提,,腾讯几乎是是国内硕果仅存的使用c++和CGI做web后端(大部分业务,不过应该不是全部业务采用cgi)的公司了,这主要是由于历史原因吧。 大学生朋友们,如果应聘腾讯看到后台工程师的技能要求是c++,千万不要惊讶。。看到php是前端工程师的要求也别奇怪,毕竟c++直接cout出来HTML还是略蛋疼,php做这层view应该是一种高效的解决方案吧。当然不加php,前端直接对接后台c++也是不奇怪的,毕竟restful的风格走俏嘛!
手机码字不易。
CGI是一种设计思想,其最早的实现是每次请求都直接调用操作系统来创建进程、销毁进程;但是cgi的实现也可以基于event模型,这样不必新建进程,甚至不必创建新的线程,从而使效率获得提升。具体过程:
1、在创建socket后,将http_receiver作为通道event的处理函数,收取每个字符;
catch {fileevent $channel readable [list http_receiver $channel $chost $cport]}
2、在http_receiver中捕捉eof,完成http报文头的提取;在这里要同时处理认证,认证通过的给出cgi函数,并要将参数、ip地址、端口等都传到cgi函数:
www_give_cgi $channel $channel $args $request $chost $cport
3、在cgi函数中根据ip地址、端口判断用户,并给出适合该用户的响应。
先看一下这里的关系图
nginx[+spawn-fcgi]+flup+webpy服务搭建
我觉的flup在这里的角色应该是中间件:
向前能够满足FastCGI规范要求的Socket长连接、Shell环境变量传递请求参数
向后能够满足WSGI规范要求的“异步回调”。(异步回调的思想在Node.js这个WebServer解决方案中被强调的非常重,可以简单搜索一下做一个了解)
另一篇博客也总结的很好,居然很难搜到。比较详细,放在后面看。
网关协议学习:CGI、FastCGI、WSGI
热心网友
时间:2022-05-11 03:33
公共网关接口(Common Gateway Interface,CGI)是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。
CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。
通过CGI 协议,再结合已搭建好的web应用程序,就可以让web server也能"处理"动态请求(或者说,当用户访问某个特定资源时,可以触发执行某个web应用程序来实现特定功能)。
扩展资料
CGI规范定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。
对于许多静态的HTML网页无法实现的功能,通过 CGI可以实现,比如表单的处理、对数据库的访问、搜索引擎、基于Web的数据库访问等等。
当CGI进程接收到web server的请求后,调用search程序并执行,同时还会传递参数给search程序。search执行结束后,CGI进程/线程将处理结果返回给web server,web server再返回给浏览器。
参考资料来源:百度百科-CGI
热心网友
时间:2022-05-11 04:51
CGI 是外部应用程序(CGI 程序)与 WEB 服务器之间的接口标准,是在 CGI 程序和 Web 服务器之间传递信息的过程。
绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服 务器产生相应的处理,或将相应的信息反馈给浏览器,CGI程序使网页具有交互功能。
CGI 是 Web 服务器运行时外部程序的规范,按 CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库 API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。
标准 CGI 使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。
CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。 在其它操作系统(如:windows NT及windows95等)的服务器上 也广泛地使用CGI程序,同时它也适用于各种类型机器。
扩展资料:
CGI处理步骤:
1、通过Internet把用户请求送到服务器。
2、服务器接收用户请求并交给CGI程序处理。
3、CGI程序把处理结果传送给服务器。
4、服务器把结果送回到用户。
使用注意的问题:
CGI应用程序运行在浏览器可以请求的服务器系统上,执行时需要使用服务器CPU时间和内存。如果有成千上万的这种程序会同时运行,那会对服务器系统提出极高的要求。你要慎重考虑这个问题,以防止服务器系统崩溃。
不完善的CGI应用程序可能成为别人非法进人服务器系统的通道,有可能导致重要的资料被删除或外泄。
CGI应用程序主要的用途有以下几种:
根据浏览者填写的HTML表单发送定制的答复;创建可单击的图像缩小图;创建一个浏览者可以搜索内容的数据库;
提供服务器与数据库的接口,并把结果转换成HTML文档;制作动态HTML文挡。
参考资料:
百度百科-CGI
热心网友
时间:2022-05-11 06:26
什么是CGI
1. 定义:
CGI(Common Gateway Interface)是HTTP服务器与你的或其它机器
上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
2. 功能:
绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服
务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使
网页具有交互功能。
3. 运行环境:
CGI程序在UNIX操作系统上CERN或NCSA格式的服务器上运行。
在其它操作系统(如:windows NT及windows95等)的服务器上
也广泛地使用CGI程序,同时它也适用于各种类型机器。
4. CGI处理步骤:
⑴通过Internet把用户请求送到服务器。
⑵服务器接收用户请求并交给CGI程序处理。
⑶CGI程序把处理结果传送给服务器。
⑷服务器把结果送回到用户。
5. CGI服务器配置:
CGI程序不是放在服务器上就能顺利运行,如果要想使其在服务器
上顺利的运行并准确的处理用户的请求,则须对所使用的服务器进
行必要的设置。
配置:根据所使用的服务器类型以及它的设置把CGI程序放在某一
特定的目录中或使其带有特定的扩展名。
⑴CREN格式服务器的配置:
编辑CREN格式服务器的配置文件通常为/etc/httpd.conf/
在文件中加入:Exec cgi-bin/*/home/www/cgi-bin/*.exec
命令中出现的第一个参数cgi-bin/*指出了在URL中出现的目录
名字,并表示它出
现在系统主机后的第一个目录中,如:
http://edgar.stern.nyn.e/cgi-bin/
命令中的第二个参数表示CGI程序目录放在系统中的真实路径。
CGI目录除了可以点网络文件放在同一目录中,也可以放在系统
的其它目录中,但必须保证在你的系统中也具有同样的目录。在
对服务器完成设置后,须重新启动服务器(除非HTTP服务器是用
inetd启动的)。
⑵NCSA格式服务器的配置
在NCSA格式服务器上有两种方法进行设置:
①在srm.conf文件(通常在conf目录下)中加入:
Script Alias/cgi-bin/cgi-bin/
Script Alias命令指出某一目录下的文件是可执行程序,且这
个命令是用来执行
这些程序的;此命令的两个参数与CERN格式服务器中的Exec命
令的参数的含意一样。
②在srm.conf文件加入:
Add type application/x-httpd-cgi.cgi
此命令表示在服务器上增加了一种新的文件类型,其后第一个
参数为CGI程序的MIME类型,第二个参数是文件的扩展名,表
示以这一扩展名为扩展名的文件是CGI程序。
在用上述方法之一设置服务器后,都得重新启动服务器(除非
HTTP服务器是用inetd启动的)。
什么是IIS
首先,Internet Information Server的缩写为(IIS)是一个World Wide Web server。Gopher server和FTP server全部包容在里面。 IIS意味着你能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,象有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW)
其次,IIS是随Windows NT Server 4.0一起提供的文件和应用程序服务器,是在Windows NT Server上建立Internet服务器的基本组件。它与Windows NT Server完全集成,允许使用Windows NT Server内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。
1.IIS的安装
IIS可以在Windows NT安装时安装,也可以安装完Windows NT后用“控制面板”中的“添加/删除程序”安装,安装路径为光盘中的:i386\inetsrv\inetstp.exe。安装过程中要求添加相应的ODBC驱动程序。
2.IIS的管理
IIS通过ISM(Internet Service Manager)进行管理,ISM有两个版本,一个以普通应用程序的方式运行,一个在Web浏览器中运行,二者的差别在于后者不能启动和停止Internet服务。
ISM(应用程序方式)管理界面:在“查看”菜单中选择“查看报告”、“服务器查看”、“服务查看”可以得到三种视图:
报告视图 缺省的视图,按字母顺序依次显示所选择的计算机及其上安装的服务。通过该视图可以:连到服务器并显示其属性对话框;启动、停止或暂停服务;可选择显示哪些服务(FTP、WWW、GOPHER)。
服务器视图 显示网络上运行Internet服务的计算机名。打开该计算机可以看到正在运行的Internet服务。双击服务器名可以显示其属性对话框。
服务视图 列出所有的Internet服务。打开服务可以看到哪些计算机运行该服务。双击服务下的计算机名,可以打开该计算机上的服务属性对话框。
3.IIS安全性
IIS的安全性核心依赖于Windows NT Server内置的安全性,IIS自身也内置了安全性。包括加密、验证以及IIS扩展等。
(1)Windows NT Server安全性:Windows NT提供用户账户安全性、NTFS安全性。
①用户账户安全性:Windows NT要求用户提供有效账户以及口令才能访问Windows NT。IIS安装时创建Internet Guest 账户,缺省情况下,所有IIS用户都使用这个账户登录到服务器,这个账户只允许本地登录,没有其他权利。假如允许远程用户用登录Internet Guest 账户登录就不必给远程用户用户名及口令,Windows NT以Internet Guest 账户对待。
②NTFS文件安全性:NTFS提供安全性,可以控制对数据文件的访问,应当将数据文件放在NTFS分区。NTFS可以精确控制哪些用户和组以什么权限访问文件和目录。
(2)IIS的安全性:除了Windows NT的安全措施外,IIS本身也有安全控制能力。通过账户名及口令控制访问:可以配置WWW服务要求用户连入服务器之前提供一个合法的用户名及口令。
热心网友
时间:2022-05-11 08:17
CGI全称是“公共网关接口”(Common
Gateway
Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
Common
Gate
Interface听起来让人有些专业,
我们就管它叫CGI好了。在物理上,CGI是一段程序,它运行在Server上,提供同客户端
Html页面的接口。这样说大概还不好理解。那么我们看一个实际例子:
现在的个人主页上大部分都有一个留言本。留言本的工作是这样的:先由用户在客户端输入一些信息,如名字之类的东西。接着用户按一下“留言”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的cgi程序中,于是cgi程序在服务器上按照预定的方法进行处理。在本例中就是把用户提交的信息存入指定的文件中。然后cgi程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。
》
电影中的CGI技术指
computer
generated
image电脑生成的画面
热心网友
时间:2022-05-11 10:25
CGI
abbr.
Common Gateway Interface , 公共网关接口
abbr.
Computer Graphics Interface 计算机图形接口
热心网友
时间:2022-05-11 12:50
通用网关接口,用来实现动态网页最古老的技术
热心网友
时间:2022-05-11 15:31
FSO(FileSystemObject)是微软ASP的一个对文件操作的控件,该控件可以对服务器进行读取、新建、修改、删除目录以及文件的操作。是ASP编程中非常有用的一个控件。但是因为权限控制的问题,很多虚拟主机服务器的FSO反而成为这台服务器的一个公开的后门,因为客户可以在自己的ASP网页里面直接就对该控件编程,从而控制该服务器甚至删除服务器上的文件。因此不少业界的虚拟主机提供商都干脆关掉了这个控件,让客户少了很多灵活性。
商务中国的W2K虚拟主机服务器具有高安全性,可以让客户在自己的网站空间中任意使用却有没有办法危害系统或者妨碍其他客户网站的正常运行。