cgi脚本

在我最初创建自己的第一个商业网站的互联网时代,生活是美好的。

我安装了Apache,并创建了一些简单HTML页面,这些页面陈述了有关我的业务的一些重要内容,并提供了重要信息,例如产品概述以及如何与我联系。 这是一个静态网站,因为内容很少更改。 维护很简单,因为我的网站保持不变。

静态内容

静态内容很容易而且仍然很普遍。 让我们快速看一下几个静态网页示例。 您不需要工作的网站即可进行这些小实验。 只需将文件放在主目录中,然后使用浏览器打开它们即可。 如果通过网络服务器将文件提供给浏览器,您将看到确切的样子。

静态网站上的第一件事是index.html文件,该文件通常位于/ var / www / html目录中。 该文件可以像文本短语一样简单,例如“ Hello world”,根本没有任何HTML标记。 这将仅显示文本字符串。 在您的主目录中创建index.html,并添加“ Hello world”(不带引号)作为唯一内容。 在浏览器中使用以下URL打开index.html。


file: /// home /< yourhomedirectory >/ index.html 

因此不需要HTML,但是如果您有大量需要格式化的文本,则没有HTML编码的网页的结果对于运行在一起的所有内容都是难以理解的。

因此,下一步是通过使用一些HTML编码提供某种格式来使内容更具可读性。 以下命令创建一个页面,该页面具有使用HTML的静态网页所需的绝对最小标记。 您也可以使用自己喜欢的编辑器来创建内容。


echo "<h1>Hello World</h1>" > test1.html 

现在查看index.html并查看其中的区别。

当然,您可以在实际的内容行周围放置许多其他HTML,以使网页更加完整和标准。 如下所示的更完整的版本仍将在浏览器中显示相同的结果,但它也为更标准化的网站奠定了基础。 继续使用此内容作为index.html文件,并在浏览器中显示它。

<!DOCTYPE HTML PUBLIC "-//w3c//DD HTML 4.0//EN">
< html >
< head >
< title > My Web Page < / title >
< / head >
< body >
< h1 > Hello World < / h1 >
< / body >
< / html >

我使用这些技术建立了两个静态网站,但是我的生活即将改变。

用于新工作的动态网页

我接受了一项新工作,我的主要任务是为非常动态的网站创建和维护CGI( 通用网关接口 )代码。 在这种情况下,动态意味着在浏览器上生成网页所需HTML是根据每次访问该页面时可能会不同的数据生成的。 这包括来自用户的Web表单上的输入,该表单用于查找数据库中的数据。 结果数据被适当HTML包围,并显示在发出请求的浏览器中。 但这并不需要那么复杂。

使用网站的CGI脚本,您可以创建简单或复杂的交互式程序,这些程序可以运行以提供一个动态网页,该网页可以根据输入,计算,服务器中的当前状况等进行更改。 有许多种语言可用于CGI脚本。 我们将看看其中两个,Perl和Bash。 其他流行的CGI语言包括PHP和Python。

本文不介绍Apache或任何其他Web服务器的安装和设置。 如果可以访问可以试用的Web服务器,则可以直接查看结果,就像在浏览器中一样。 否则,您仍然可以从命令行运行程序并查看将要创建HTML。 您还可以将该HTML输出重定向到文件,然后在浏览器中显示结果文件。

使用Perl

Perl是CGI脚本非常流行的语言。 它的优势在于,它是一种用于处理文本的非常强大的语言。

要执行CGI脚本,您需要httpd.conf中针对您所使用的网站的以下行。 这告诉Web服务器可执行CGI文件位于何处。 对于本实验,我们不必为此担心。


ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 

将以下Perl代码添加到文件index.cgi中,该文件应位于实验的主目录中。 使用Web服务器时,将文件的所有权设置为apache.apache,并将权限设置为755,因为无论位于何处,该文件都必须是可执行的。

#!/usr/bin/perl
print "Content-type: text/html \n \n " ;
print "<html><body> \n " ;
print "<h1>Hello World</h1> \n " ;
print "Using Perl<p> \n " ;
print "</body></html> \n " ;

从命令行运行该程序并查看结果。 它应该显示它将生成HTML代码。

现在,在浏览器中查看index.cgi。 好吧,您所获得的只是文件的内容。 浏览器确实需要将此作为CGI内容提供。 除非网站的Apache配置包括“ ScriptAlias”定义,否则Apache并不真正知道它需要将文件作为CGI程序运行。 没有这些配置,Apache只需将文件中的数据发送到浏览器。 如果可以访问Web服务器,则可以使用/ var / www / cgi-bin目录中的可执行索引文件来尝试此操作。

要查看浏览器中的外观,请再次运行该程序,然后将输出重定向到新文件。 随便命名。 然后使用浏览器查看包含生成内容的文件。

上面的CGI程序仍在生成静态内容,因为它始终显示相同的输出。 在“ Hello World”行之后,立即将以下行添加到CGI程序中。 Perl“ system”命令在系统外壳中执行其后的命令,并将结果返回给程序。 在这种情况下,我们只需从free命令的结果中grep当前RAM的使用情况。


system "free | grep Mem \n " ; 

现在再次运行该程序,并将输出重定向到结果文件。 在浏览器中重新加载文件。 您应该看到另一行,以便显示系统内存统计信息。 运行该程序并刷新浏览器几次,然后注意内存使用情况应偶尔更改。

使用重击

Bash可能是所有用于CGI脚本的最简单的语言。 它对CGI编程的主要优势是可以直接访问所有标准的GNU实用程序和系统程序。

将现有的index.cgi重命名为Perl.index.cgi并创建一个具有以下内容的新index.cgi。 请记住将权限正确设置为可执行文件。

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo '<html>'
echo '<head>'
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
echo '<title>Hello World</title>'
echo '</head>'
echo '<body>'
echo '<h1>Hello World</h1><p>'
echo 'Using Bash<p>'
free | grep Mem
echo '</body>'
echo '</html>'
exit 0

从命令行执行该程序并查看输出,然后运行它并将输出重定向到您之前创建的临时结果文件。 然后刷新浏览器以查看显示为网页的外观。

结论

创建可用于生成各种动态网页的CGI程序实际上非常简单。 这是一个简单的例子,但是您现在应该看到一些可能性。

翻译自: https://opensource.com/article/17/12/cgi-scripts

cgi脚本

cgi脚本_如何使用CGI脚本生成网页相关推荐

  1. unity双击打不开脚本_游戏对象和脚本 (创建一个时钟)

    该文章是一篇译文,附上原文链接 Game Objects and Scripts​catlikecoding.com 使用简单对象构建一个时钟 编写一个C#脚本 转动时钟的指针来显示时间 创建指针动画 ...

  2. 路由器运行python脚本_写个Python脚本来登录小米路由器

    这个脚本写起来难度并不是很大,博主还是一步步的分析下,这样思路会比较清晰,下次遇到类似系统脚本写起来也更快速.好了,一起来分析分析. 首先看下小米路由器的登录界面 可以看到只需要输入密码即可登录,博主 ...

  3. 京东自动评论脚本_京东时光机python脚本 自动完成任务

    其他的活动大家都玩的很嗨,这个貌似没什么动静 活动大概就是积碎片兑换奖励,奖励没怎么注意自己去看吧 活动地址:https://h5.m.jd.com/babelDiy/Zeus/3DDunaJMLDa ...

  4. linux shc shell脚本_详解shell脚本加密解密软件—gzese和shc

    概述 以我个人的需求为例,有时写一个脚本需要传密码,如果直接把密码写在脚本里会存在安全问题,一般是把密码写在脚本里,作为参数传给脚本,而保存密码的脚本,使用某种手段加密,令其不可读但是可执行.而常用的 ...

  5. python sql脚本_使用Python SQL脚本进行数据采样

    python sql脚本 介绍 (Introduction) The Python programming language is object oriented, easy to use and, ...

  6. 我的世界服务器java启动脚本_教程/服务器启动脚本

    警告 因为这是Wiki的一个条目,可以在任何时间内被任何人编辑,因此建议你不要完全使用这个脚本,而是将其当作编写脚本的指导手册看待. 这是一个可供参考的Minecraft启动脚本示例,并使用GNU/L ...

  7. redchat怎么编写shell脚本_如何写shell脚本?尝试自己编写一个简单脚本

    1. 创建Shell脚本文件 2. 显示消息 3. 使用变量 4. 反引号 5. 重定向输入输出 6. 管道 7. 执行数学运算 8. 退出脚本 1. 创建脚本文件的时候,必须将文件的第一行指定要使用 ...

  8. 域控下发脚本_域用户登陆脚本

    如何为一个域用户设置登陆脚本? - BAT可否作为登陆脚本? - 在域用户"属性"中,应如何指定登陆脚本名?"D:\x.bat"还是"\\srv\x. ...

  9. python写网页脚本_东拼西凑用python脚本登录web管理页面做巡检(实现)

    东拼西凑用python脚本登录web管理页面做巡检(实现) 发布时间:2020-06-06 12:26:40 来源:51CTO 阅读:489 参考博文https://www.cnblogs.com/s ...

最新文章

  1. shell脚本--02循环与条件
  2. NSDictionary所有API的学习。
  3. 成功解决Exception “unhandled AttributeError“ module ‘cv2.cv2‘ has no attribute ‘estimateRigidTransform‘
  4. 一名合格前端工程师的进阶指南!都来认真看一下吧
  5. 李想称十年后要成为汽车界苹果;雅虎邮箱停服;Linux内核欲采用现代C语言标准 | 极客头条...
  6. QEMU CVE-2020-14364 漏洞分析(含 PoC 演示)
  7. Linux内核加载全流程
  8. 计算机网络 职中,职中计算机网络基础期中考试试卷.pdf
  9. pythongui日历控件_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...
  10. 关于Request.params的知识收藏
  11. oracle歸檔日誌,oracle歸檔日誌清理 | 學步園
  12. vue使用a标签下载文件_Vue a标签实现点击下载,下载图片、txt文件,不是直接打开的方式...
  13. zktime 协议_zktime5.0考勤管理系统使用说明书(1.2版).pdf
  14. 如何用css实现元素固定宽高比?
  15. 小小的企业邮箱,大大的渠道天地 | 企业服务渠道商系列谈
  16. 数学定理【转自百度百科】
  17. win10添加mysql8环境变量_win10下mysql8.0.12安装及环境变量配置教程
  18. html模拟百度人物百科,HTML MARC
  19. 2021年最新UI/UE设计软件全家桶
  20. Linux忘记密码的解决方法

热门文章

  1. NowCoder(1):彩色宝石项链——搜狐2017校招编程题
  2. 为什么你的企业做私域流量没有效果,这些原因考虑了吗?
  3. 谷歌双标?拒绝给员工涨薪后,转头将高管工资提高到100万美元
  4. 就说学计算机顿痛我怎么幽默回复,别人说累怎么幽默回复 高情商句子学起来...
  5. Android 14 Developer Preview一览
  6. 无论你是否主力 Swift, 这些事情你都可以了解一下
  7. 潍坊学院计算机工程学院天一楼地址,潍坊学院:年末最后例会,感恩温暖人心...
  8. Java面试笔试常见题目(2022.04——2022.06)
  9. python生成四位随机数_python_产生4位的随机数(四位验证码)
  10. Codeblocks 利用GLUT 画出矩形,直线,三角形,圆形图案并实现翻转,镜像,变色放大缩小等功能