Ruby中的CGI文件是什么? 如何创建.RB文件?

CGI –代表通用网关接口脚本。
这是一个简单的协议,用于将HTTP请求从服务器传递到客户端,然后将输出返回到Web浏览器。

CGI脚本包含在环境(GET)或通过$ stdin(POST)传递的请求的参数,并且它打印到$ stdout的所有内容都返回给客户端。

一个非常简单的CGI脚本是:

#!/ usr / bin / ruby
将“ HTTP / 1.0 200 OK”
放置“内容类型:text / html \ n \ n”
放置“ 这是一个测试 ”

哪里,
第一行是HTTP版本和成功状态代码(200)。
第二行是内容类型。
第三行是内容(数据)。

说明:
如果调用此脚本test.cgi并将其上载到具有适当权限的基于Unix的Web托管提供程序,则可以将其用作CGI脚本。

例如,如果您的网站http://www.example.com/由Linux Web托管提供程序托管,并且将test.cgi上载到主目录并赋予其执行权限,则访问http:// www。 example.com/test.cgi应该返回一个HTML页面,上面写着“ 这是一个测试”

在这里,当从Web浏览器请求test.cgi时,Web服务器将在网站上查找test.cgi ,然后使用Ruby解释器执行它。 Ruby脚本返回一个基本的HTTP标头,然后返回一个基本的HTML文档。

如何制作.rb文件? 在这里,我假设您的意思是带有.rb扩展名的cgi脚本(或ruby cgi脚本)

Ruby附带有一个名为cgi的特殊库,与以前的CGI脚本相比,该库支持更复杂的交互。

#!/ usr / bin / ruby
需要’cgi’
cgi = CGI.new
把cgi.header
放置“ 这是一个测试 ”

创建表单和HTML:
CGI包含大量用于创建HTML的方法。 您将为每个标签找到一种方法。 为了启用这些方法,必须通过调用CGI.new创建一个CGI对象。

为了使标记嵌套更容易,这些方法将其内容作为代码块。 代码块应返回String ,它将用作标签的内容。 例如:

#!/ usr / bin / ruby
需要“ cgi”
cgi = CGI.new(“ html4”)
cgi.out {
cgi.html {
cgi.head {“ \ n” +
cgi.title {“这是测试”}} +
cgi.body {“ \ n” + c
gi.form {“ \ n” +
cgi.hr +
cgi.h1 {“ A形式:”} +“ \ n” +
cgi.textarea(“ get_text”)+“ \ n” +
cgi.br +
cgi.submit}}}}

注意: CGI类的表单方法可以接受一个方法参数,该参数将设置要在表单提交中使用的HTTP方法(GET,POST等)。 在此示例中使用的默认值为POST。
这将产生以下结果:

内容类型:text / html
内容长度:302

这是测试


A表格:



Ruby的CGI类提供了更多功能。 在这里更详细地了解它:Ruby Web应用程序– CGI编程