web server apache tomcat11-14-CGI

这篇具有很好参考价值的文章主要介绍了web server apache tomcat11-14-CGI。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。

开源项目

从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。

系列文章

web server apache tomcat11-01-官方文档入门介绍

web server apache tomcat11-02-setup 启动

web server apache tomcat11-03-deploy 如何部署

web server apache tomcat11-04-manager 如何管理?

web server apache tomcat11-06-Host Manager App -- Text Interface

web server apache tomcat11-07-Realm Configuration

web server apache tomcat11-08-JNDI Resources

web server apache tomcat11-09-JNDI Datasource

web server apache tomcat11-10-Class Loader

...

Introduction

CGI (Common Gateway Interface) 定义了 Web 服务器与外部内容生成程序(通常称为 CGI 程序或 CGI 脚本)交互的方式。

在 Tomcat 中,当您将 Tomcat 用作 HTTP 服务器并且需要 CGI 支持时,可以添加 CGI 支持。通常在开发期间进行这样的操作,当您不想运行诸如 Apache httpd 等网络服务器时。Tomcat 的 CGI 支持与 Apache httpd 的兼容性很高,但有一些限制(例如,只有一个 cgi-bin 目录)。

CGI 支持是使用 servlet 类 org.apache.catalina.servlets.CGIServlet 实现的。传统上,将此 servlet 映射到 URL 模式 "/cgi-bin/*"。

默认情况下,Tomcat 中禁用了 CGI 支持。

安装

注意 - CGI 脚本用于执行 Tomcat JVM 外部的程序。

要启用 CGI 支持:

在默认的 $CATALINA_BASE/conf/web.xml 文件中有注释的示例 servlet 和 servlet-mapping 元素,用于 CGI servlet。要在 Web 应用程序中启用 CGI 支持,请将该 servlet 和 servlet-mapping 声明复制到 Web 应用程序的 WEB-INF/web.xml 文件中。

取消注释 $CATALINA_BASE/conf/web.xml 文件中的 servlet 和 servlet-mapping 可以一次为所有已安装的 Web 应用程序启用 CGI。

在您的 Web 应用程序的 Context 元素上设置 privileged="true"。

只有标记为特权的 Context 才允许使用 CGI servlet。请注意,修改全局的 $CATALINA_BASE/conf/context.xml 文件会影响所有 Web 应用程序。有关详细信息,请参阅 Context 文档。

配置

有几个 servlet init 参数可用于配置 CGI servlet 的行为。

  • cgiMethods - 逗号分隔的 HTTP 方法列表。使用这些方法之一的请求将被传递给 CGI 脚本以生成响应。默认值为 GET,POST。使用 * 可以使脚本处理所有请求,而不管方法如何。除非被该参数的配置覆盖,否则使用 HEAD、OPTIONS 或 TRACE 的请求将由超类处理。
  • cgiPathPrefix - CGI 搜索路径将从 web 应用程序根目录 + File.separator + 此前缀开始。默认情况下没有值,这将导致将 web 应用程序根目录用作搜索路径。建议的值是 WEB-INF/cgi。
  • cmdLineArgumentsDecoded - 如果启用了命令行参数(通过 enableCmdLineArguments)并且 Tomcat 在 Windows 上运行,则每个解码的命令行参数必须匹配此模式,否则请求将被拒绝。这是为了防止已知问题从 Java 传递命令行参数到 Windows。这些问题可能导致远程代码执行。有关这些问题的更多信息,请参阅 Markus Wulftange 的博客和 Daniel Colascione 的存档博客。
  • cmdLineArgumentsEncoded - 如果启用了命令行参数(通过 enableCmdLineArguments),则每个已编码的命令行参数必须匹配此模式,否则请求将被拒绝。默认匹配 RFC3875 定义的允许值,格式为 [\w\Q%;/?😡&,$-.!~*'()\E]+。
  • enableCmdLineArguments - 是否从查询字符串生成命令行参数,参见 RFC 3875 第 4.4 节?默认值为 false。
  • environment-variable- - 要设置为 CGI 脚本执行环境的环境。变量的名称取自参数名称。要配置名为 FOO 的环境变量,请配置名为 environment-variable-FOO 的参数。参数值将用作环境变量值。默认情况下没有环境变量。
  • executable - 用于运行脚本的可执行文件的名称。如果脚本本身是可执行的(例如,exe 文件),则可以将此参数明确设置为空字符串。默认为 perl。
  • executable-arg-1、executable-arg-2 等 - 可执行文件的其他参数。这些参数在 CGI 脚本名称之前。默认情况下没有其他参数。
  • envHttpHeaders - 用于选择作为环境变量传递给 CGI 进程的 HTTP 标头的正则表达式。请注意,在匹配之前标头会转换为大写,并且整个标头名称必须与模式匹配。默认值为 ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|IF-[-0-9A-Z]*|REFERER|USER-AGENT
  • parameterEncoding - 用于 CGI servlet 的参数编码的名称。默认值为 System.getProperty("file.encoding","UTF-8")。即系统默认编码,如果该系统属性不可用,则为 UTF-8。
  • passShellEnvironment - 是否应将来自 Tomcat 进程的 shell 环境变量(如果有)传递给 CGI 脚本?默认为 false。
  • stderrTimeout - 在终止 CGI 进程之前等待读取 stderr 完成的时间(以毫秒为单位)。默认为 2000。

执行的 CGI 脚本取决于 CGI Servlet 的配置以及请求如何映射到 CGI Servlet。CGI 搜索路径从 web 应用程序根目录 + File.separator + cgiPathPrefix 开始。然后搜索 pathInfo(如果不为 null),否则搜索 servletPath。

搜索从第一个路径段开始,并逐个扩展一个路径段,直到不再剩余路径段(导致 404)或找到脚本。任何剩余的路径段都将作为 PATH_INFO 环境变量传递给脚本。

参考资料

https://tomcat.apache.org/tomcat-11.0-doc/cgi-howto.html文章来源地址https://www.toymoban.com/news/detail-855058.html

到了这里,关于web server apache tomcat11-14-CGI的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web server apache tomcat11-10-Class Loader

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月22日
    浏览(47)
  • web server apache tomcat11-08-JNDI Resources

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月22日
    浏览(47)
  • web server apache tomcat11-01-官方文档入门介绍

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 同时也为从零手写实现 tomcat 提供一些基础和特性的思路。 minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 we

    2024年04月16日
    浏览(58)
  • web server apache tomcat11-03-deploy 如何部署

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月17日
    浏览(37)
  • web server apache tomcat11-26-maven jars

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月28日
    浏览(33)
  • web server apache tomcat11-24-Virtual Hosting and Tomcat

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月27日
    浏览(35)
  • web server apache tomcat11-06-Host Manager App

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月22日
    浏览(49)
  • web server apache tomcat11-12-SSL/TLS Configuration

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月22日
    浏览(44)
  • web server apache tomcat11-21-monitor and management 监控与管理

    整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 web server apache tomcat11-01-官方文档入门介绍 web server apache tomcat11-02-setup 启动 web server apache tomcat11-03-deploy 如何部署 web

    2024年04月25日
    浏览(55)
  • Tomcat:org.apache.coyote.http11.Http11Processor.service 解析 HTTP 请求 header 错误

    注意其中:HTTP请求解析错误 将 https 改成 http 即:http://localhost:8080/ (其中8080根据自己配置来更改,tomcat默认是8080) 修改后: 成功!! 具体原因俺也不造,欢迎友友们指教,多谢!! Tomcat与http有协议

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包