通用网关接口 (CGI) 是网络服务器之间的交集,通过它可以在外部应用程序和服务器之间进行标准化数据交换。它属于现存最古老的在线界面技术,至今仍被一些知名虚拟主机提供商使用。使用CGI 时,HTML页面不需要存储在服务器上,而是可以在用户进行网站查询时动态创建。
当用户在网站上输入时,数据不会直接传输到服务器,而是需要先进行处理。此处理通过外部软件(例如CGI 脚本)进行,而不是直接通过网络服务器进行。该程序通过标准化的CGI交集传输数据,该交集以 HTML 格式生成信息。CGI程序通常保存在网络服务器上的一个特殊文件夹中。CGI脚本可以用不同的编程语言编写。通用网关接口确保——无论使用何种语言——网络服务器和脚本相互通信。
优点
CGI是生成动态网站内容的一种简单有效的方法。同时,CGI 应用程序不必保存在服务器上,因此不会不必要地使用任何资源。此外,通用网关接口与多种编程语言兼容,可以轻松集成到现有基础设施中。最后但同样重要的是,开源标准是免费的,开发人员可以立即使用。
缺点
通用网关接口的最大弱点之一是回复 CGI 应用程序的时间可能相对较长。每个新条目都需要重新启动该程序。这对于遇到高流量的网站来说可能是个问题,服务器通常一次只支持少数CGI应用程序,并且额外的查询被添加到队列或被拒绝。
如果没有采取额外的安全措施,通用网关接口与任何接口都非常相似,可能会带来安全风险。理论上,外部程序可以通过CGI访问网络服务器数据。因此,应该对CGI脚本进行限制,以免造成任何损害。
下面提到另外一个概念,即CGI脚本。CGI脚本是大多数服务器与其他程序和脚本通信的方式,是简单的文本文件、代码行,根据服务器的请求进行解释,该脚本将与其他程序以及网页的HTML 内容一起工作,由于HTML本身仅允许显示信息,因此CGI脚本赋予HTML与访问者交互的能力。CGI脚本可以用Perl、PHP、C、Visual Basic或Python编写。CGI本身不是一种编程语言。CGI脚本的一个例子是:购物车系统、点击计数器、留言簿、订单、邮件、地图等。它更像是一种用于网络服务器和脚本之间通信的协议。Perl和PHP似乎是首选语言,因为它们易于学习并且非常便携。
以上介绍的是CGI的基本定义和优劣势。最近一直想要一款虚拟主机,找遍了知名主机提供商,最终选择了Hostease的虚拟主机。该产品不仅支持完全CGI访问还提供Canned CGI脚本,再搭配R1Soft备份服务,购买后才发现真的是物超所值。
来源地址:https://blog.csdn.net/ZhujiServer/article/details/127902945