CGI: Common gateway interface具体原理没有特别懂

CGI: 通用网关接口

早期的Web服务器,只能响应浏览器发来的HTTP静态资源的请求,并将存储在服务器中的静态资源返回给浏览器。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服务器与外部应用程序(CGI程序)之间数据互通,于是出现了CGI(Common Gateway Interface)通用网关接口。

简单理解,可以认为CGI是Web服务器和运行其上的应用程序进行“交流”的一种约定。

image.png
image.png
什么是CGI? -----> 一种通信协议

CGI不是一门编程语言。它 是网页的表单和你写的程序之间通信的一种协议。可以用任何语言写一个CGI脚本,这些语言只要能接收输入输出信息,读取环境变量。
所以,几乎所有的编程语言都能写一个CGI脚本,例如:python(把我大python放在第一个!),C,甚至是shell脚本。

CGI脚本的结构

典型的CGI脚本做了如下的事情:

  • 读取用户提交表单的信息。
  • 处理这些信息(也就是实现业务)。
  • 输出,返回html响应(返回处理完的数据)。
Overview:

CGI是一种通信协议,它把用户传递过来的数据转变成一个k-v的字典。
这个字典中不光有用户的数据,还有HTTP协议的参数。它做的就是把数据,组织成一个固定结构形式的数据。方便任何符合CGI协议的程序都可以调用!但是CGI不是负责通信(传输数据)的,通信的话是通过socket,也就是server,例如上面例子中,是通过Apache进行通信。之后调用CGI脚本,把数据转变成符合CGI协议的数据结构,用于后面的数据处理!

Reference:
https://www.cnblogs.com/xueweihan/p/5319893.html
https://www.runoob.com/python/python-cgi.html
https://www.jianshu.com/p/c4dc22699a42

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容