Web サーバでクライアントからの要求に応じて適切なプログラムを動作させるための仕組みに CGI がある。CGI を経由して実行されるプログラムを作成できるスクリプト言語はどれか。
平成24年度 春期 ITパスポート試験 問55
这道题的解析和你的作答记录。
問 55
错误ア
CASL 是为信息处理技术人员考试而定义的虚拟计算机 COMET 所使用的汇编语言,是考试中用来学习程序基本工作原理的教学用语言。它并不存在能够在真实的 Web 服务器上运行的语言处理系统(实现),而且它根本不是脚本语言,而是与机器语言一一对应的汇编语言,所以不属于用来编写经由 CGI 调用的程序的语言。
错误イ
Fortran 是以数值计算和科学技术计算为目的而设计的历史悠久的程序设计语言,属于先把源代码编译成可执行文件再运行的编译型语言。它适合矩阵运算和数学公式的书写,但并不是直接逐条执行源代码的脚本语言,因此不符合本题所要求的「能够编写经由 CGI 执行的程序的脚本语言」。
- ウ
正解 正确答案是ウ「Perl」。CGI(Common Gateway Interface,通用网关接口)是这样一种约定(接口规范):Web 服务器收到客户端的请求时,启动服务器上的外部程序来完成处理,并把该程序写入标准输出的结果作为 HTML 等响应返回给客户端。CGI 本身并不是编程语言,而是「服务器与外部程序之间传递数据的规则」,因此只要是能够按照这一规则进行输入输出的语言,用哪一种来编写都可以;但实际上处理的核心是解析请求参数、拼装响应文本这类字符串处理,所以通常使用无需编译、可以随时轻松改写的脚本语言。Perl 在基于正则表达式的文本处理方面非常强大,而且是无需事先编译、直接执行源代码的解释型脚本语言,长期以来一直是编写 CGI 程序的代表性语言。因此,能够编写经由 CGI 执行的程序的脚本语言是ウ的 Perl。另外,除 Perl 之外,PHP、Python、Ruby 等也用于同样的用途。
错误エ
SQL 是用来对关系数据库下达指令的数据库语言(查询语言),可以定义表、对数据进行检索/插入/更新/删除、设置访问权限等。它是向数据库管理系统(DBMS)发送查询的专用语言,而不是通过组合条件分支和循环来构成一个完整应用程序的通用脚本语言。虽然可以在 CGI 程序中发出 SQL 来使用数据库,但 CGI 程序本身并不是用 SQL 编写的。
- CGI 的定义 —— 一种接口规范,使 Web 服务器能够根据客户端的请求启动服务器上的外部程序,并把该程序的输出作为响应返回。CGI 不是语言,而是数据传递的约定,是实现动态 Web 页面的经典机制。
- 按是否为脚本语言来给选项分类 —— Perl、PHP、Python、Ruby、JavaScript 等是无需编译即可执行的脚本语言,Fortran 和 C 是编译型语言,CASL 是汇编语言,SQL 是数据库语言。只要掌握了语言的分类,考查语言名称的题目就一定能答对。