如题,这一问题在之前参加面试的时候屡次被问到,但是真要解释又有点无从下手的感觉,今天在查看W3CSchool的Servlet文档的时候偶然看到一个以前没太了解的词汇——CGI 程序
Servlet 教程
Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可以不受 CGI
程序的性能限制。Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。
于是在必应搜索了一下,第一个标签页就指向了“Python CGI编程”
Python CGI编程
什么是 CGI
CGI 目前由 NCSA 维护,NCSA 定义 CGI 如下:
CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP 服务器,提供同客户端 HTML 页面的接口。
网页浏览
为了更好的了解 CGI 是如何工作的,我们可以从在网页上点击一个链接或 URL 的流程:
1、使用你的浏览器访问 URL 并连接到 HTTP web 服务器。
2、Web 服务器接收到请求信息后会解析 URL,并查找访问的文件在服务器上是否存在,如果存在返回文件的内容,否则返回错误信息。
3、浏览器从服务器上接收信息,并显示接收的文件或者错误信息。
CGI 程序可以是 Python 脚本,PERL 脚本,SHELL 脚本,C 或者 C++ 程序等。
CGI架构图