- 2022-06-23
- 阅读()
- 来源:互联数据
CGI是什么?百度百科里面讲过,CGI是通用网关接口(Common Gateway Interface/CGI)是一种重要的互联网技术,CGI描述了服务器和请求处理程序之间传输数据的一种标准。CGI应用程序 能通过Web服务器与浏览器进行交互,还可以通过数据库API与数据库服务器等外部数据源进行通信。
从数据库服务器中获取数据,将数据格式化为HTML文档后,发送给浏览器,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数据。也可以将从浏览器获得的数据放到数据库中。
也就是说,所有Web服务器都支持CGI,我们可用多种语言编写CGI(包括流行的C、C ++等),只要这种语言具有标准输入、输出和环境变量。
什么是cgi 程序?
放置在服务器上的一段可执行程序。作为HTTP服务器的时候,客户端可以通过GET或者POST请求来调用这可执行程序。
CGI的作用
CGI在web服务的业务开展中,是桥梁的作用,有着数据转化以及传输的作用、还有着保存用户信息以及上传的作用,还能在客户搜索的时候提供一个小型数据库的作用。这些功能在大家的业务开展中是不可缺少的。
CGI客户端请求服务端的交互流程:
第1步、前端通过表单可以向服务器发送一个URL;
第2步、服务器获取到很多参数(get或post请求的参数、服务器和客服端的信息,cookie等等);
第3步、服务器开启CGI模块将参数存到环境变量中,并调用一个CGI程序;
第4步、CGI程序从环境变量中解析出这样请求的具体参数,向标准输出输出内容,发送到了你的浏览器;
第5步、浏览器收到http请求,解析html代码,然后渲染出了网页。
举个栗子:当我们搭建好一台web服务器,网站已经上线,但用户是不可能直接进入到我们的web服务器内的。假设用户直接进入到WEB服务器内的话不但用户访问数据消耗的时间增多,而且对于服务器来说也很不安全,所以就需要有一个载体在网络中实时显示web服务器上的文件数据,也就是浏览器。而存储在web服务器内的数据就是通过CGI转换传输到web浏览器上去并显示出来的,所以CGI这个应用程序就是在大家开展业务的过程中数据传输的桥梁。
CGI程序的优点:
除了在业务开展中传输数据的作用,在web服务的用户访问方面,因为html无法直接记住客户信息,而在业务开展的过程中是可以记录用户信息的,这也是CGI的功劳,所以CGI还可以很好的记住并把客户的访问信息传输到web服务器中去。让大家能够实时查看到web服务的客户访问情况,并及时作出调整,以便于更好的开展web服务。其次还有许多html无法提供的功能都是通过CGI补充完美的,如可以当作一个计数器、搜索程序、web数据库等等。并且在编写CGI应用程序时,CGI可以通过多种编写语言来编写,如C、C++、jave等等,让大家不必在编写CGI脚本方面特地的去学习某种语言。
使用的过程中CGI应注意的几个问题:
1、大量消耗服务端资源(一般执行CGI脚本,要单独开启一个进程执行);
2、没有做到前后端分层,前端不但要知道任务做什么,还要知道任务怎么做调用相应CGI脚本,后端要返回组装的html内容;
3、如果CGI脚本有bug被利用,容易对服务器造成攻击。
因为CGI程序需要传输以及转换文件格式,所以CGI程序的运行也是需要占用cpu以及内存的,所以大家在开展web服务的时候需要留出一定的空间,以供CGI程序运行,否则用户访问过多的情况下,就可能导致WEB服务器的系统奔溃。其次不完善的CGI应用程序还可能成为别人入侵您WEB服务器的进攻渠道,造成一些不可挽回的损失。所以要保证CGI程序的完善,这样能有效避免一些不必要的麻烦。