科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 6693 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2009-03-11
admin
admin
发短消息
相关词条
M2M
M2M
SPDY
SPDY
MOVE模式
MOVE模式
WebRTC
WebRTC
网页分类技术
网页分类技术
Li-Fi
Li-Fi
Teaser Page
Teaser Page
数字蚂蚁
数字蚂蚁
FOE
FOE
远程立体视频会议
远程立体视频会议
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

CGI
CGI
CGI意思为Common Gateway Interface,一种基于浏览器的输入、在Web服务器上运行的程序方法。CGI脚本使浏览器与用户能交互,为了在数据库中寻找一个名词,提供你写入的评论,或者从一个表单中选择几个条目并且能得到一个明确的回答。如果曾经遇到过在web上填表或进行搜索,就是用的CGI脚本。那时也许没有意识到,因为大部分工作是在服务器上运行的,看到的只是结果。

目录

[显示全部]

基本简介编辑本段回目录

CGI
CGI
CGI脚本简单地讲是个运行在Web服务器上的程序,有浏览器的输入触发。这个脚本通常象服务器和系统中其他程序如数据库的桥梁

CGI脚本难道不是一个真正的脚本,按照服务器的支持,可能是一个编译好的程序或者批命令文件或者其他可执行的东西。为了简单起见,统称为脚本scripts。

CGI脚本是任何运行在web服务器上的程序。CGI脚本是用下列两种方法使用的:作为一个表单的ACTION或作为一个页中的直接link。CGI脚本有服务器调用,基于浏览器的数据输入。

1、一个URL指向一个CGI脚本。一个CGI脚本的URL能如普通的URL一样在任何地方出现。
2、服务器接收请求,按照那个URL指向的脚本文件(注意文件的位置和扩展名),执行脚本。
3、脚本执行基于输入数据的操作,包括查询数据库计算数值或调用系统中其他程序。
4、脚本产生某种Web服务器能理解的输出结果。
5、服务器接收来自脚本的输出并且把它传回浏览器,让用户了解结果。

配置条件编辑本段回目录

CGI
CGI
在使用CGI脚本之前,有两件事也许要解决:CGI脚本是个高级的Web特性并且需要你和Web服务器管理者一样好的知识。

为了能写和运行CGI脚本,你需要一个Web服务器。不象通常的HTML文件,你不能在本地系统上写或试验CGI脚本;通过Web服务器来做这个。但是即使你有一个Web服务器,这个服务器必须特别地为运行CGI脚本配置一下。那意味着你所有的脚本必须放置在一个叫做cgi-bin的目录下。

在编写CGI脚本之前,询问服务器管理者是否允许你安装和运行CGI脚本,并且如果可以的话,他们必须放置在哪儿。还有,必须有个真正的Web服务器,如果是FTP或Gopher服务器,那就不能用CGI。

如果在自己的服务器上运行,你必须特别地创造一个叫cgi-bin的目录,并配置服务器认可这个目录为一个脚本目录。也必须记住下面有关CGI脚本特点:

1、每个脚本是个程序,它运行在浏览器可以请求的系统上,执行时使用CPU时间和内存。如果有成打上千的这些脚本同时运行,系统将不忍负载直至崩溃。
2、如果你不仔细地编写CGI脚本,你将有可能让别人通过CGI脚本参数进入伤害系统。

你可以用你熟悉的任何语言编写CGI脚本,只要脚本遵守下一节所陈列的规则即可,只要那个语言能在Web服务器系统上运行。

在这本学习手册中,仅用两种语言编写CGI脚本:UNIXshell和Perl语言。这个shell是适合在任何相近的UNIX系统上运行并且容易学习,但是处理复杂的情况就困难了。Perl,就要用这个语言了,它是免费的,这个语言是稳定和强大的,类似C,但它也是较难学习的。

为了运行任何一个CGI脚本,不管简单或复杂的,服务器必须设置成能够运行他们,必须放置在一个特定的目录,必须有一个依赖你服务器设定的文件扩展名。如果你是租用服务器,就要是否允许运行CGI脚本。如果你拥有自己的服务器,检查服务器说明书是怎样处理CGI脚本的。

输出头部编辑本段回目录

CGI
CGI
虽然CGI脚本可以让你做任何事情,但是脚本的输出还是必须有一个规定形式。这个“脚本输出”意思是指脚本发回服务器的数据。在UNIX系统中,输出是发向标准输出,服务器从那儿检测它。在其他系统和服务器,脚本输出也许不一样了。这个头部是实际不是文本的一部分,是服务器与浏览器之间的信息协议,你实际看不到。

有三个类型的头部:Content-type,Location,和Status。Content-type最普遍的。

有关content-type解释可以见有关HTML的说明,一个你可以发出的特定编码象这样:

Content-type:text/html 输出数据的类型是text/html;换句话说,他是个HTML文件。

通用格式和content-types。

 

输出数据编辑本段回目录

输出的数据应该符合你所规定的content-type;如果content-type是text/html,输出安置应该是在HTML。如果content-type是image/gif,输出应该是在一个二进制的GIF文件。

为了传递一个参数给脚本,可以在URL中使用插入脚本名词和参数之间,用加号(+)表示每个单一的参数,如:
runmyscript
当服务器接收到这个请求,它传递arg1,arg2,和arg3参数给脚本。你然后能在脚本中使用这些参数。

这个方法有时叫查询,因为早期它用在搜索功能中。

登陆检查编辑本段回目录

CGI
CGI
既然你知道怎样使用参数,继续上面的例子pinglaura,通过修改这个例子得到下面这个脚本pinggeneric。

#!/bin/sh

echo"Content-type:text/html"
echo
echo""
echo"AreYouThere?"
echo""
在上面的例子中,下一步应该是测试是否登陆,在这里用参数${1}代替名字lemay,${1}作为第一个参数,${2}作为第二个,${3}作为第三个。
ison='who|grep"${1}"'

剩下的所有修改如下:

if[!-z"$ison"];then
echo"$1isloggedin"
else
echo"$1isn'tloggedin"
fi
echo""
修改HTML页中的连接:
IsLauraLoggedin
修改为通用查询功能后是这样,比如查询名字叫john的人是否登陆。

脚本输出编辑本段回目录

CGI
CGI
有第二种方法传递信息给CGI脚本。它叫作路径信息path information用作那些在脚本调用是不用变更的参数,象一个临时文件名或调用脚本自己的文件名。正如你看到的,在上面的例子问号后面的参数是因用户表单的输入而改变的。路径信息Pathinfo用作其他信息传递给脚本,实际上,你可以用它作任何事情。

路径信息Pathinformation是一种不象通常参数脚本那样频繁传递信息的方法。路径Pathinformation通常是指Web服务器上的那些比如配置文件、临时文件或者被脚本因问题调用的文件等等此类文件。

看下面一个路径信息pathinformation例子,

当脚本运行时,在路径中的信息将被放置于环境参数PATH_INFO。你能在脚本内容中使用这些信息。假设在多页上已有多个连接到同一个脚本。能用这个路径信息显示那个有连接的HTML文件名。这样,在完成处理脚本之后,当你发回一个HTML文件时,能在这个文件里包含一个连接,发回用户一开始那个页。

程序语言编辑本段回目录

CGI
CGI
既然CGI是一种程序,自然需要用编程语言来写。你可以用任何一种熟悉的高级语言,C,C++,Cshell和VB。值得特别指出的,有一种叫Perl的语言。其前身是属于Unix专用的高级语言,其具有强大的字符串处理能力而成为现在写CGI,特别是表单类程序的首选。最近它已经有了Window95,和winnt版本。

可以在搜索程序里找到在那里下载它。VB是Ms的杀手锏,从目前的情况看,微软公司正试图使VB无所不能,自然也包括在Internet。请各位注意,VB开发的程序只能在windows平台上被执行,所以它有一定局限。CShell,经典的语言。可惜能做的事情不多,而且必须在Unix平台下。C,C++,真正的无所不能。可是在写CGI的时候显得非常难以掌握。特别是缺乏可以灵活使用的字符串处理函数。对程序员的要求也比较高,维护复杂。

CGI可以提供许多HTML无法做到的功能。比如:a.一个记数器b.顾客信息表格的提交以及统计c.搜索程序d.WEB数据库。用Html是没有办法记住客户的任何信息的,就算用户愿意让你知道。用Html也是无法把信息记录到某一个特定文件里的。要把客户段的信息记录在服务器的硬盘上,就要用到CGI。这是CGI最重要的作用,它补充了Html的不足。是的,仅仅是补充,不是替代。

相关词条编辑本段回目录

参考资料编辑本段回目录

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: CGI

收藏到: Favorites  

同义词: 暂无同义词

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。