CGI小白一些漫想

CGI Common Gateway Interface

  • 一种基于浏览器的输入、在Web服务器上运行的程序方法
  • 你创建客户端的 CGI脚本, 服务器端的程序用来处理用户输入, 结果返回给用户


CGI脚本是什么?它是怎样工作的
 CGI脚本是用下列两种方法使用的: 作为一个表单的ACTION 或 作为一个页中的直接link。
 它的工作方式是从浏览器到服务器到脚本到程序

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

上面的话也许不是很好理解。那么,我们来仔细想想,以前每拿到一本关于web动态语言的书,基本上都会拿CGI、JSP、ASP、PHP放在一起比较个半天,这说明了啥,说明了要进行web动态开发,光靠Html难挑大梁。从浏览器到服务器是一个交互的过程,那么这种交互就要交给一门语言来完成。当我们拿到一份php、asp、jsp文件仔细研究,会发现他们的结构还是html的,可是多了很多%号或者$号之类的天书。那么浏览器肯定也看不懂这类天书,所以逢客户端脚本必伴随web服务器作翻译。在asp中是IIS,在JSP中是tomcat,在PHP中是apache。解释了这么多,相信客户端脚本的工作方式已经很好理解啦。

     CGI的特点是 一个URL对应一个CGI脚本 ,当服务器接收到请求,那么服务器就执行URL对应的CGI脚本

         执行完了脚本之后会产生一个结果,那么服务器把这个结果传回给浏览器。得到了我们想要的。

         那么有人说CGI到底好不好用,是不是不如PHP啊,其实是各有所长各有千秋啊,而且感觉风水轮流转。有人说小打小闹就PHP,和老的兼容就CGI,靠MS就ASP,赶潮流就ASP.NET,想玩点大的就JSP。嗯,照这么说CGI不是out啦么。非也。CGI 是一种规范,并且是安全的,和asp.php.jsp是一种 语法体系不同,它不受限制于语法体系,遵循规范即可应 用,那么不管你使用什么语言,只要按照CGI规范去做就是 CGI程序,你不需要为学习新的语法体系而投入资金,同样 虽然以ISAPI,MODULE形式运行的ASP,PHP,JSP是有其个自 的优越性,但是新的学习,和语法体系的局限性是不可避免存在的,并且有CGI基础过度是很容易的,所以CGI不会过时 ASP.PHP.JSP只是一个在各自条件下比CGI方便快捷的方式 从ASP,PHP,JSP的实际应用来看,和CGI的作用是一样的。CGI最大的优点是平台(操作系统、服务器、语言)无关性和简单易懂。凡是运行在http服务器上的都是CGI,只不过表现形式不同。    


参考文件:http://www.jdon.com/idea/cgi.htm

转载于:https://www.cnblogs.com/yingzi/archive/2012/04/25/2470149.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSH开发中 使用超链接到action 其excute方法会被执行两次 actual row count: 0; expected: 1...

由于执行两次excute,所以在做删除操作的时候会出现 Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 表示找不到要删除的在控制台出现的语句是 Hibernate: delete from user where id? Hibernate: delete from user where id?…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波1 - 灰度变换和空间滤波基础、Sigmoid激活函数

这里写目录标题本节的目标背景灰度变换和空间滤波基础本节的目标 了解空间域图像处理的意义,以及它与变换域图像处理的区别熟悉灰度变换所有的主要技术了解直方图的意义以及如何操作直方图来增强图像了解空间滤波的原理 import sys import numpy as np import cv2…

微软Edge扩展工具箱旨在将Chrome扩展带至Edge

微软Windows 10新工具Edge扩展工具箱旨在让开发人员可以轻松地将Chrome扩展转换为微软Edge扩展。\\微软Edge扩展工具箱的目标是在少修改或不修改的情况下将Chrome扩展移植到微软Edge。按照微软官方的描述,“该工具会创建必要的JSON清单项,架起一座从chro…

absolute 必须 relative_Workfine如何控制身份证号码必须为18位?

在信息化系统的设计中,由于业务的需要,我们往往需要设置许多控制项,以保证系统能够按照业务要求流转,必须出库数量不能超过库存,人员信息不能重复录入,考勤区间不能有交叉等。此篇以实例的方式告诉大家如果…

angularAMD快速入门

ngularAMD是作者 marcoslin 使用 RequireJS + AngularJS开发的前端mvvm框架,因此你可以使用它快速创建一款Web App.他特别适合快速开发SPA应用,适当的和更简单的方式。 我们整合AngularJS和RequireJS不应该是复杂的,它不是angularAMD。在行动…

ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(2)用户登录、注销

上次实现了用户注册,这次来实现用户登录,用到IAuthenticationManager的SignOut、SignIn方法和基于声明的标识。最后修改用户注册代码实现注册成功后直接登录。 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波2 - 图像反转、对数变换

目录一些基本的灰度变换函数图像反转对数变换一些基本的灰度变换函数 如下图显示了在图像处理中频繁使用的3类基本函数: 线性(反转和恒等变换)函数对数(对数和反对数变换)函数幂律(nnn次幂和nnn次根变换&…

为Android应用程序添加社会化分享功能

正在做个android的小应用,有点想尝试一下社会化分享,比如分享到新浪微博啥的。看一下新浪,人人网的API,说实话功能很全很强大,但虽说有相对的SDK,但是总觉得不方便。因为正在使用友盟的统计SDK,…

安卓手机浏览器排行_安卓手机双11性价比排行发布|拯救者手机发透明版|小米发大光圈手机镜头...

智友新闻2020-11-05本期摘要:①安卓手机双11性价比排行榜发布②联想拯救者电竞手机 Pro 至尊透明版启动预约③小米发伸缩式大光圈镜头概念安卓手机双11性价比排行榜发布 安兔兔近日发布了安卓手机双11性价比排行榜。该榜单的统计维度为 2020年10月1日至10月31日。其…

jQuery随笔1-CDN加载

如果您不希望下载并存放 jQuery&#xff0c;那么也可以通过 CDN&#xff08;内容分发网络&#xff09; 引用它。 谷歌和微软的服务器都存有 jQuery 。 如需从谷歌或微软引用 jQuery&#xff0c;请使用以下代码之一&#xff1a; Google CDN: <head> <script src"h…

SQL Server 2008故障转移集群+数据库镜像配置实例之三

前两篇文章已经建立了SQL 2008 的故障转移集群&#xff0c;由于故障转移集群存在一个单点故障&#xff0c;既是当网络存储设备不可用时&#xff0c;整个集群就不可用了。所以为了获得更好的高可用特性和容灾机制&#xff0c;我们可以将集群中的某一特定SQL数据库配置一个镜像数…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波3 -幂律变换、伽马变换

目录幂律&#xff08;伽马&#xff09;变换幂律&#xff08;伽马&#xff09;变换 scrγ(3.5)s c r^{\gamma} \tag{3.5}scrγ(3.5) c和γc和\gammac和γ是正常数。考虑到偏移&#xff08;即输入为0时的一个可度量输出&#xff09;&#xff0c;可改写为sc(rϵ)γs c (r \epsi…

DBCP|C3P0参数详解

1.<!-- 数据源1 --> 2. <bean id"dataSource" 3. class"org.apache.commons.dbcp.BasicDataSource" 4. destroy-method"close"> 5. <property name"driverClassName" value"com.mysql.jdbc.Driver"/> 6. …

没有与参数列表匹配的 重载函数 strcpy_s 实例_Zemax光学设计实例(84)Ftheta扫描平场透镜的设计...

导论&#xff1a;F-theta透镜又叫激光扫描聚焦镜&#xff0c;是激光加工行业必不可少的光学元件之一。对于理想薄透镜&#xff0c;光束的偏转角度与轨迹位置的关系为YF*tan(θ)&#xff0c;这种非线性关系会使得匀速偏转的振镜扫描速度与轨迹运动速度是不匹配的&#xff0c;导致…

MongoDB学习笔记(一)--基础

Insert MongoDB在执行插入时&#xff0c;首先会将插入的数据转换成BSON格式。然后MongoDB数据库会对BSON进行解剖&#xff0c;并检查是否存在_id建。 >doc {"_id" : 1…

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波4 - 分段线性变换 - 对比度拉伸

目录分段线性变换对比度拉伸最大最小值拉伸分段线性变换 优点 形式可以任意复杂 缺点 要求用户输入很多参数 对比度拉伸 光照不足、成像传感器的动态范围偏小、图像获取过程中镜头孔径的设置错误 点(r1,s1)和点(r2,s2)(r_1, s_1)和点(r_2, s_2)(r1​,s1​)和点(r2​,s2​…

2017网易内推编程题(判断单词):解答代码

2019独角兽企业重金招聘Python工程师标准>>> 小易喜欢的单词具有以下特性&#xff1a; 1.单词每个字母都是大写字母 2.单词没有连续相等的字母 3.单词没有形如“xyxy”(这里的x&#xff0c;y指的都是字母&#xff0c;并且可以相同)这样的子序列&#xff0c;子序列可…

Debian下IPv6设定主地址 Set primary IPv6 address under Debian Linux

Linux下选择IPv6主地址是按照一定规则来的 #RFC3484 (davidc) Prefer same address. (i.e. destination is local machine) Prefer appropriate scope. (i.e. smallest scope shared with the destination) Avoid deprecated addresses. Prefer home addresses.Prefer outgo…

iphone查看删除的短信_想要恢复已经删除的的短信怎么办?

阅读本文前&#xff0c;请您先点击上面的蓝色字体&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注。 …

获取套接字相关联信息

前言 知道套接字描述符&#xff0c;如何获取这个套接字连接的相关信息呢&#xff1f;显然&#xff0c;这是一个必须要清楚的问题。 获取本地协议信息 函数原型&#xff1a;int getsockname ( int sockfd, struct sockaddr *localaddr, socklen_t *addrlen ) 函数功能&#xff1…