web server apache tomcat11-14-CGI

来源:https://www.cnblogs.com/houbbBlogs/p/18149973
-Advertisement-
Play Games

前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...


前言

整理這個官方翻譯的系列,原因是網上大部分的 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%;/?
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1 不具備記憶能力的 它是零狀態的,我們平常在使用一些大模型產品,尤其在使用他們的API的時候,我們會發現那你和它對話,尤其是多輪對話的時候,經過一些輪次後,這些記憶就消失了,因為它也記不住那麼多。 2 上下文視窗的限制 大模型對其input和output,也就是它的輸入輸出有數量限制。為了保護它的 ...
  • C++ 構造函數 構造函數是 C++ 中一種特殊的成員函數,當創建類對象時自動調用。它用於初始化對象的狀態,例如為屬性分配初始值。構造函數與類同名,且沒有返回值類型。 構造函數類型 C++ 支持多種類型的構造函數,用於滿足不同的初始化需求: 預設構造函數: 不帶參數的構造函數,通常用於初始化對象的默 ...
  • 單向順序鏈表的創建,增,刪,減,查 /******************************************************************* * * file name: 單向順序鏈表的創建,增,刪,減,查 * author : [email protected] ...
  • 作者:青石路 來源:https://www.cnblogs.com/youzhibing/p/18019399 MyBatis 替換成 MyBatis-Plus 背景介紹 一個老項目,資料庫用的是 MySQL 5.7.36 , ORM 框架用的 MyBatis 3.5.0 , mysql-conne ...
  • C++對象在經過類的封裝後,存取對象中的數據成員的效率是否相比C語言的結構體訪問效率要低下?本篇將從C++類的不同定義形式來一一分析C++對象的數據成員的訪問在編譯器中是如何實現的,以及它們的存取效率如何? ...
  • 只要是 web 項目,程式都會直接或間接使用到線程池,它的使用是如此頻繁,以至於像空氣一樣,大多數時候被我們無視了。但有時候,我們會相當然地認為線程池與其它對象池(如:資料庫連接池)一樣,要用的時候向池子索取,用完後歸還給它即可。然後事實上,線程池獨樹一幟、鶴立雞群,它與普通的對象池就是不同。本文本 ...
  • 本文介紹基於Python語言中ArcPy模塊,實現ArcMap自動批量出圖,並對地圖要素進行自定義批量設置的方法。 1 任務需求 首先,我們來明確一下本文所需實現的需求。 現有通過Python基於Excel數據加以反距離加權空間插值並掩膜圖層所繪製的北京市在2019年05月18日00時至23時(其中 ...
  • 1. OSI 7層模型 OSI的7層模型對於大家來說可能不太好理解,所以我們通過一個案例來講解: 假設,你在瀏覽器上輸入了一些關鍵字,內部通過DNS找到對應的IP後,再發送數據時內部會做如下的事: 應用層:規定數據的格式。 "GET /s?wd=你好 HTTP/1.1\r\nHost:www.bai ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...