现在 CGI 脚本有哪些用途?

2024-03-01

我非常熟悉一般的 Web 编程语言,但我现在使用的工具之一是 CGI。我只能说 CGI 脚本相当慢。

CGI 如今仍然普遍使用吗?如果不是的话,被什么取代了?
是否存在 CGI 仍然存在并被积极使用的利基功能?


CGI是协议,它是创建动态页面最基本、最标准的方式。

在很多情况下它都是有用的:

  1. 当您想要使用不带 mod_XYZ 的语言(例如 C 或 Haskell)创建基本应用程序时,这可能是计算密集型的。
  2. 在嵌入式系统中,内存很昂贵,您更喜欢生成 CGI 脚本 而不是一直将其保留在记忆中。
  3. 在某些托管服务上,您希望能够灵活地以任何您想要的技术编写服务器端软件,但另一方面,不要使用 FastCGI 将总统应用程序保存在内存中(例如 Sourceforge 托管)。
  4. CGI 上的负载很低,因此您不必关心每个请求生成的应用程序。例如,在像 MoveableType 这样的博客中,仅通过 CGI 完成更新,其余所有内容均由 CGI 完成 通过静态页面,CGI 脚本会在需要时更改。所以生成 CGI 脚本的成本 非常低。
  5. 当您的大部分内容是静态页面并且您希望使用 thttpd 这样的服务器来提供服务时,因此很少有操作可以通过它支持的 CGI 来完成。

所以... CGI 很简单,但仍然非常有用API,允许简单地做事。

例如,显示服务器正常运行时间的脚本

#!/bin/bash
echo Content-Type: text/plain
echo
uptime

还有什么比这更简单、更容易且更少依赖网络服务器的呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

现在 CGI 脚本有哪些用途? 的相关文章

  • 如何打印数组的所有值? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个数组 print r 不会显示原始文本 如何打印数组中的所有值 例如饼图 有很多方法可以做到 foreach array as
  • 使用 shell 脚本进行 CGI 编程

    我需要将文本框的内容传递到变量中 即 在 html 页面的文本框中输入的任何内容都需要传递给变量 这是因为我在 linux shell 编程中调用 HTML 以及 CGI 我需要根据需要操纵该变量 你有什么想法去做吗 我需要做的是 我想获取
  • Rails:特定 HTTP 错误代码的自定义行为

    我正在开发一个 RoR 网站 希望单独处理服务器错误 400 404 500 等 另外 由于网站是动态的 我想在 Rails 环境中处理错误 而不是在服务器级别 我想做的一个例子是 当用户遇到无法加载或根本不存在的页面或模板时 向用户提供可
  • 键盘覆盖了 webapp 中的文本输入(iOS)

    我正在开发一个网络应用程序 屏幕下半部分有两个输入字段 父视图绝对定位于屏幕 通常 人们会假设单击输入字段时 焦点会强制输入进入键盘上方的视图 但是 键盘覆盖了输入字段 如果我开始打字 则该字段中不会输入任何内容 为了在字段中输入内容 我必
  • 创建新的 Expect 对象时,cgi-perl 文件中出现 Apache [PTY 错误]

    我有一个 perl 脚本 usr bin perl w use DateTime use Expect use IO Pty use CGI Fast while q new CGI Fast my ip q gt param ip my
  • Python SimpleHTTPServer 接收文件

    我正在使用 SimpleHTTPServer 的 do POST 方法来接收文件 如果我使用curl上传png文件 该脚本工作正常 但每当我使用python请求库上传文件时 文件上传但会损坏 这是 SimpleHTTPServer 代码 u
  • 跨页面加载跟踪子窗口

    如果重新加载父页面 是否可以跟踪子窗口 我目前打开窗口如下 var childWindow childWindow window open url 当我想重新打开同一个子窗口时 childWindow focus 明显的问题是 如果刷新父窗
  • 在 TFS 构建过程中运行 WatiN 测试时出现超时问题

    我已经在我的开发环境中运行了一个简单的 WatiN Web 测试 并尝试让它在 TFS 构建服务器上运行 尝试加载页面时失败 但出现以下异常 WatiN Core Exceptions TimeoutException Internet E
  • 检测 vb.net 中的浏览器关闭事件

    我的网页如下所示
  • 将 showModalDialog() 的内容添加到剪贴板 Google 脚本

    当我单击按钮时 我已将格式化数据添加到模态对话框中 我想要的内容showModalDialog 当我单击按钮时也会自动添加到剪贴板 模态是用下面的代码生成的 并且temp是我想要添加到剪贴板的输出 Output to Html var ht
  • 使用端口 80 (Ubuntu / Linode) 运行 Node.js 的最佳实践 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在设置我的第一个Node js服务器上的cloud Linux node我对以下细节还很陌生Linux admin 顺便说一句 我并没有尝试
  • 如何为高流量网络应用程序实现“保存搜索”功能?

    我想知道可以在 eBay 等大型网络应用程序上找到的 保存的搜索 功能 您可以做的就是保存搜索 例如 宾得镜头 50mm 1 4 每当有人出售符合搜索条件的新优质标准快速宾得镜头时 您都会收到通知 对我来说 实现此类功能并不是一件简单的事情
  • Visual Studio 2010 基类扩展编译器错误

    我有一个 C 类 提供一些简单的类和一些基类扩展 例如这个 public static Boolean ToBooleanOrDefault this String s Boolean Default return ToBooleanOrD
  • Clojure Web 应用程序 - 我从哪里开始?

    最近我一直在研究 Clojure 我喜欢这门语言 我想看看我是否可以在其中制作一个小型网络应用程序 只是为了挑战自己 但是 我完全没有设置任何与 Java 相关的 Web 应用程序的经验 事实上 我对 Java 并没有太多的经验 我从哪说起
  • Internet Explorer 8 + 放气

    我有一个非常奇怪的问题 我真的希望有人能给出答案 因为我不知道还能去哪里问 我正在用 C 编写一个 cgi 应用程序 它由 Apache 执行并输出 HTML 代码 我自己在 C 应用程序中压缩 HTML 输出 因为我的 Web 主机由于某
  • 使用 Java 的 OpenId 提供者/服务器

    我正在尝试使用 OpenId 服务增强现有的 Java Web 应用程序 以便登录用户可以使用我的 Web 应用程序作为 OpenId 提供程序登录另一个启用 OpenId 的应用程序 My first attempt was to use
  • IMAP 转发器

    我想知道从 IMAP 帐户转发邮件的最快 最可靠的方法是什么 我的大学不允许我们的学生邮箱转发到私人电子邮件帐户 这里每个人都使用 Gmail 或 Hotmail 这是一个政治问题 而不是技术问题 我们确实可以通过 IMAP 访问邮箱 我想
  • 如何在spring mvc框架中运行后台进程

    我有一个网络应用程序 使用 spring mvc 框架 它使得以下内容 用户将文件上传到服务器 立即进入成功页面 使用该文件运行后台进程 那么 我如何使用 spring mvc 框架来做到这一点呢 先感谢您 使用异步标记方法 你在这里有例子
  • ServletContext getContextPath()

    我检查了我的 Netbeans 项目中包含的 Tomcat 库的 javadoc 当我部署代码时工作正常 但是当我对我的 Web 项目进行全新构建时 我在 getContextPath 上收到 找不到符号 ServletContext接口的
  • iOS7 中“-webkit-overflow-scrolling: touch” 最初的屏幕外元素被破坏

    既然转基因种子已经发布了 我们现在可以谈谈了 看起来 iOS7 中的 webkit overflow scrolling touch 已损坏 最初不在屏幕上的元素的触摸事件不会触发 或者在某些情况下只是不可靠 这是一个例子

随机推荐

  • 如何在 Angular 1.5 组件中等待绑定(没有 $scope.$watch)

    我正在编写一个 Angular 1 5 指令 并且在尝试在绑定数据存在之前对其进行操作时遇到了一个令人讨厌的问题 这是我的代码 app component formSelector bindings forms controller fun
  • 如何从 ZSH 的历史记录中删除条目

    假设我使用 zsh 运行了一个命令 echo mysecret gt file 我可以使用命令轻松打印历史记录 包括条目号fc l 1 echo mysecret gt file 但是如何轻松地从历史记录中删除条目呢 我找不到相应的段落男人
  • Unix 中的 Chrome Headless 返回空页面源

    我正在使用 Chrome Headless 在 Unix 机器 Cent OS 中运行我的硒测试脚本 但是相同的脚本在我的本地 Windows 机器上完美运行 但在 Unix 机器中 它返回空页面源 如空 html 标签 尽管我使用最新的
  • JTable 多标题行

    I am using a JTable in my application and wish to have 2 rows for headings similar to this 这是否可能 或者我必须做其他事情吗 如果是这样 那又怎样
  • 如何将 Sass Eyeglass 与 Webpack 结合使用?

    我想用萨斯眼镜 https github com sass eyeglass eyeglass with Webpack https webpack js org 我发现有关它的信息很少 并且相当令人沮丧 因为我确信它可以完成 有人使用它取
  • 协方差在这里安全吗?

    class Food class Meat extends Food class Animal void feed Food f class Lion extends Animal void feed Meat m void foo Ani
  • 如何从 ManagedBean 获取 primefaces 数据表列顺序和宽度

    我正在使用 primefaces 4 0 JSF Mojarra 2 2 2 这是我的数据表代码
  • 如何解决 OpenSSL::Cipher::Cipher#encrypt 的弃用警告

    我刚刚将 Mac 升级到 Snow Leopard 并启动并运行了 Rails 环境 除了 OSX 之外 与我之前安装的唯一区别是我现在正在运行ruby 1 8 7 2008 08 11 patchlevel 72 universal da
  • 找不到页面 (404)

    Error Request Method GET Request URL http 192 168 100 10 accounts profile Using the URLconf defined in urls Django tried
  • 在无需访问 Internet 的情况下从 EC2 实例使用 AWS CLI

    有没有办法使用AWS CLI从EC2 linux实例调用不同的服务 例如SQS EC2 SNS 调用 AWS CLI 命令的 EC2 实例无法访问互联网 它位于私有子网中 它不使用互联网网关或 NAT Thanks 不可能 CLI 必须访问
  • 棘手的 CRC 算法

    我正在尝试找到适用于以下结果的 crc 字节串由 2 个字节组成 即 0xCE1E crc 是单个字节 即 0x03 byte crc CE1E 03 CE20 45 CE22 6F 0000 C0 0001 D4 FFFF 95 有人可以
  • Perl 的未来? (Perl 6,就业能力)

    我发现了一些相关的问题 比如Python 与 Perl https stackoverflow com questions 150043 python v perl 现已删除 和Perl 值得吗 https stackoverflow co
  • Google 地图上的多个标记:仅显示最后一个标记

    我在地图上显示多个标记时遇到问题 该代码首先循环遍历一个数组 然后对纬度 经度值进行反向地理编码 然后显示标记并将 infoWindow 的内容设置为返回的地址 我的代码如下 for var i 0 i lt useNowArray len
  • @tailrec 如何工作

    我已经使用并阅读了 tailrec注释具有尾递归方法 我浏览了许多解释它的链接 例如 它仅在自调用函数时有效 并且不应被覆盖等 到处都提到compiler optimizes 但是编译器做了什么魔法 概念来使其成为尾递归 对于下面的简单函数
  • 无法从 powershell 运行 Elixir 应用程序

    当我打字时iex S mix在 PowerShell 中我收到此错误 Invoke Expression A positional parameter cannot be found that accepts argument mix At
  • 每行后动态重复标题行

    如何在 gridview 的每一行之后重复标题行 您可以将代码添加到网格的 rowdatabound event 中 protected void GridView RowDataBound object sender GridViewRo
  • Extjs XTemplate 两个同级数组循环?

    我想将 XTempate 与以下 json 数据一起使用 在另一个数组中循环一个数组 var data name xxx rowTitleArr 1 2 3 colTitleArr a b c var tpl name
  • 如何压缩包含超过 12GB 数据的文件夹

    我需要压缩一个包含大量文件的文件夹 当我尝试在命令行中进行压缩时 它显示压缩错误 输入文件读取失败 我搜索网络并发现 ZIP 文件格式 仅处理可以的文件长度 包含在 32 位整数中 如果是这样 那么它一定是我收到错误的原因 因为我的文件夹大
  • 如何使用asihttprequest接受自签名证书

    我正在尝试获取自签名证书来使用我的应用程序 我现在正在使用 ASIHTTPRequest 库 如下所示 IBAction sendHttpsRequest Set request address NSMutableString databa
  • 现在 CGI 脚本有哪些用途?

    我非常熟悉一般的 Web 编程语言 但我现在使用的工具之一是 CGI 我只能说 CGI 脚本相当慢 CGI 如今仍然普遍使用吗 如果不是的话 被什么取代了 是否存在 CGI 仍然存在并被积极使用的利基功能 CGI是协议 它是创建动态页面最基