通用网关接口(CGI,Common Gateway Interface)是一种Web服务器和服务器端编程进行交互的方式。CGI完全独立于编程语言,操作系统和Web服务器。目前,它是最常见的服务器端编程技术,几乎每一个Web服务器都支持。此外,所有服务器用几乎同样的方式实现它,这样你可以为一个服务器编写CGI脚本,然后分发到任何Web服务器上运行。

就像上面说的,服务器需要一种方法来知道哪些URL映射到脚本而其中另一些URL只映射到普通的HTML文件。对于CGI通常是通过在服务器上创建CGI目录。具体做是在服务器进行设置,并告诉服务器,当请求一个特定的顶层目录下的文件时就执行这些CGI脚本(位于磁盘上的某个地方)。(缺省目录通常是/ cgi-bin/,所以一看就知道,像这样的URL:http://www.varsity.edu/cgi-bin/search指向一个CGI脚本,需要注意的是可以任意设定该目录。)有些服务器也可以设置为不使用CGI目录,而要求所有的CGI程序都用已.cgi结尾的文件名。

CGI程序只是普通的可执行程序(或解释性程序,比如Perl或Python,只要服务器知道如何启动程序),因此你可以使用几乎任何你想要的编程语言。在CGI程序被Web服务器启动之前,web服务器定义了一些包含从请求中接收到的信息的变量。这方面的例子有客户端的IP地址,请求头等,如果请求的URL中包含一个问号(?),那么问号之后的一切都会设置成变量。

这意味着,关于请求的额外信息可以被放入该URL的链接。这是像点击计数器用来判断是哪些项目被点击的常用方法之一。因此,用户可以在他/她的页面插入一个图像,并具有SRC属性是一个链接到这样的CGI脚本:SRC =http://stats.vendor.com/cgi-bin/counter.pl?username 。那么脚本就可以知道哪些用户被击中,增量和显示正确的计数。

CGI输出其返回(HTTP头和HTML文档)到服务器的方式是非常简单的:它把它写到标准输出。换句话说,在一个Perl或Python的脚本中,你只需要使用print语句。在C语言中使用printf或者一些等效的函数(C++使用cout«),而Java将使用System.out.println。

参考链接:http://haiyangxu.github.io/posts/2014/2014-05-11-How_web_works_HTTP_and_CGI.html#title26

技术储备(一):CGI介绍相关推荐

  1. AutoX创始人肖健雄来信:无人车量产的4大技术储备

    作者:肖健雄教授  量子位 报道 | 公众号 QbitAI 2016年春,普林斯顿大学助理教授肖健雄从"Professor X",成为了AutoX创始人,正式开启自动驾驶创业旅程. ...

  2. 学计算机科学与技术的专业特长,计算机科学与技术专业简历范文介绍

    计算机科学与技术专业简历范文介绍 下面是由应届毕业生网介绍的.简历范文 基本资料 姓 名: YJBYS 性 别: 男 出生年月: 1992-08-10 婚姻状况: 未婚 民 族: 汉族 政治面貌: 其 ...

  3. 你问我答,准备面试需要做哪些技术储备,面试官更加关心什么方面的技术点?...

    这个系列整理了关于如何进入大厂的一些问题,包含了技术储备,面试官更加关心什么方面的技术点等等 一 第一个问题: 准备面试,工作 3 年了想面个大厂,现在那面试官会更注重问哪方面呢?是算法还是那些框架原 ...

  4. 北京化工大学计算机专业就业,北京化工大学特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向...

    北京化工大学特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向 本专业是任何行业和领域所需的数字信息处理专业.计算机信息技术发展的趋势是多功能化.高效率.高可靠性,它更广泛的适用性和更强 ...

  5. Z-Wave技术的五大协议介绍(ZWave中心)

    Z-Wave技术的五大协议介绍 Z-Wave协议是一个低带宽半双工传输协议,它为高可靠性的低功耗网状网络的无线通信而设计.协议的主要目的是在控制单元和一个或多个节点单元之间可靠地传输较短的控制信息. ...

  6. 虚拟化技术的分类及介绍

    虚拟化技术的分类及介绍 摘要 虚拟化是云计算系统中的一种基础技术,可以说当前一个云计算服务必定是构建在虚拟化的基础上的.本文首先介绍了不同抽象层次的虚拟化技术,之后对应用广泛的系统级虚拟化和操作系统级 ...

  7. 5G浪潮下,机器人行业仍处于技术储备阶段。

    导 读 回顾整个移动通信发展史,有人说2G时代发短信是最时髦的通信方式,3G时代微信兴起,4G时代手机把衣食住行都"管起来". 到了5G时代,已经突破传统通信技术人与人之间点对点的 ...

  8. 齐鲁师范学院计算机专业师资,齐鲁师范学院特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向...

    齐鲁师范学院特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向 学科:工学 门类:电气信息类 专业名称:计算机科学与技术 业务培养目标:本专业培养具有良好的科学素养,系统地.较好地掌握计 ...

  9. 河北科技师范学院计算机科学与技术,河北科技师范学院特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向...

    河北科技师范学院特色专业介绍_计算机科学与技术_专业课程介绍_专业排名_就业方向 学科:工学 门类:电气信息类 专业名称:计算机科学与技术 业务培养目标:本专业培养具有良好的科学素养,系统地.较好地掌 ...

  10. 智能分析再创新时代,未来安防行业技术储备将成为重中之重

    安防行业是一个集研发.生产及销售为一体的行业.随着国内安防市场需求的不断释放以及相关技术的快速发展,数字图像压缩处理.流媒体技术.计算机网络通信.自动控制技术.智能报警技术.人工智能技术等已在安防领域 ...

最新文章

  1. 在ARC环境中autoreleasepool(runloop)的研究
  2. 云计算的服务模型 SaaS PaaS IaaS
  3. FPGA的设计艺术(6)STA实战之SmartTime时序约束及分析示例(I)
  4. 读书笔记:线上性能问题初步排查方法
  5. 深入理解 Java 泛型擦除机制
  6. 第三章 Redis/SSDB+Twemproxy安装与使用
  7. MVC POST请求后执行javascript代码
  8. 有关编译嵌入式android的swap空间不够导致的编译错误和解决办法
  9. 最受开发人员欢迎的JDBC接口
  10. 调用接口时form-data形式如何传递数据
  11. 拓端tecdat|R语言:状态空间模型和卡尔曼滤波预测酒精死亡人数时间序列
  12. 【⭐阅读推荐指数:5颗星★★★★★⭐】关于多副本纠删码,你想知道的全都在这里
  13. IDEA SSH工具连接方式
  14. 解决ubuntu安装软件has install-snap change in progress错误
  15. 微信h5使用audio不会自动播放
  16. Java数组的扩容与缩减
  17. 【论文笔记】在CommonsenseQA 上追平人类: 通过External Attention 增强 Self-Attention
  18. 搭建云免流服务器教程,搭建云免流服务器教程
  19. pyautoGUI自动化脚本
  20. 中兴笔试题目总结(四)软件工程部分

热门文章

  1. Astah Professional三维图,网络上轻松上传图表
  2. 数据结构大作业-家庭记账系统
  3. 总线之地址总线、数据总线、控制总线
  4. 中医药天池大数据竞赛——中医文献问题生成挑战(二)
  5. eplan 电箱布局_Eplan 的从头到尾完成3D布局步骤说明
  6. Mysql读写分离的原理及配置--amoeba
  7. QT移植Linux平台
  8. 为什么快捷指令无法将媒体转换为文本_小红书去水印快捷指令重磅更新,连视频封面图都可以下载了...
  9. 转载_tolua之wrap文件的原理与使用_写的非常好!
  10. 支付宝到账在线生成语音源码