<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## CGI 是什么? CGI(Common Gateway Interface),通用網關接口,是一種用于在Web服務器和應用程序之間傳遞信息的標準協議。 通過CGI,Web服務器可以向應用程序發送數據,應用程序處理數據后返回結果給Web服務器,然后Web服務器將結果返回給客戶端瀏覽器顯示。CGI程序通常使用腳本語言編寫,如Perl、Python、Ruby等。CGI技術已經過時,現在更常用的是FastCGI、PHP-FPM和Web框架等技術。 CGI最早出現于1993年,由美國國家超級計算機應用中心(NCSA)開發。當時Web服務器只能提供簡單的靜態網頁,無法處理動態內容。CGI的出現使Web服務器能夠調用外部程序進行處理,實現動態內容的生成,從而推動了Web應用的發展。CGI協議最初的版本使用了CGI-BIN目錄來保存外部程序,Web服務器會通過調用這個目錄下的程序來實現與外部程序的交互。 隨著Web應用的發展,CGI協議也不斷演化。在1997年,CGI/1.1被發布,增加了對HTTPS協議的支持。隨后,2000年CGI/1.2發布,引入了FastCGI協議,使得Web服務器和外部程序之間的通信變得更加高效。此外,CGI還衍生了各種可擴展性和性能更好的協議,如PHP-FPM、WSGI和ASP.NET等,不斷推動著Web應用的發展。 ## CGI的工作流程 在網頁中點擊URL 后,調用CGI的流程是: 1. 用戶向Web服務器發送一個請求,請求一個支持CGI的動態頁面。 2. Web服務器從請求中讀取相關的環境變量和輸入數據,存儲在一個標準的輸入流中。 3. Web服務器創建一個新的進程,并在該進程中執行外部程序。執行的外部程序可以是任何語言編寫的腳本文件,如Perl、Python、PHP、Ruby等。 4. Web服務器將保存在標準輸入流中的用戶請求數據傳遞給外部程序作為參數,供程序進行處理。 5. 外部程序讀取請求數據并進行處理,然后將響應數據寫回到標準輸出流中。 6. Web服務器讀取標準輸出流中的響應數據,并將其發送回客戶端瀏覽器。 7. Web服務器關閉剛才創建的進程。 ![](https://img.kancloud.cn/8c/fb/8cfbe3cb861ce01960a8b27e2a112e33_500x375.png) ## 支持CGI的Web 服務器 支持CGI的Web服務器很多,以下是一些常見的Web服務器: * Apache * Nginx * Lighttpd * IIS * Caddy * Tomcat * Jetty * Gunicorn ## 基于Apache 的第一個CGI示例 ### windows 這里提供一個簡單的Windows Apache CGI示例: 1. 安裝 Apache HTTP Server。可以從 Apache 官網下載安裝包,或者使用一個集成環境如 XAMPP。 2. 在 Apache 的配置文件 httpd.conf 中添加以下內容,開啟 CGI 支持: ``` LoadModule cgi_module modules/mod_cgi.so AddHandler cgi-script .cgi ScriptAlias /cgi-bin/ "C:/Apache24/cgi-bin/" ``` 其中,`ScriptAlias` 指向 CGI 腳本的存放路徑。 3. 創建一個 CGI 腳本文件,例如:hello.cgi。在 C:/Apache24/cgi-bin/ 目錄下創建此文件,內容如下: ```perl #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html><body><h1>Hello, CGI!</h1></body></html>"; ``` 文件名的后綴 `.cgi` 與上面設置的 `AddHandler` 一致。 4. 啟動 Apache HTTP Server,并在瀏覽器中訪問 `http://localhost/cgi-bin/hello.cgi`,將會看到顯示 "Hello, CGI!" 的網頁。 注意:需要安裝 Perl 或其他支持的 CGI 編程語言,并將其加入系統環境變量 Path 中,使 Apache 能夠正確地執行 CGI 腳本。 ### Linux 要在Apache上運行CGI腳本,需要進行如下配置: 1. 確認Apache已經啟用了CGI模塊。可以通過執行以下命令來檢查: ``` sudo a2enmod cgi ``` 如果顯示 "Module cgi already enabled",則說明已經啟用了CGI模塊。如果提示未找到模塊,則需要執行以下命令來安裝: ``` sudo apt-get install libapache2-mod-cgi ``` 2. 創建CGI腳本并將其放置在Apache的可執行目錄中。比如,你可以在 /usr/lib/cgi-bin 目錄下創建一個名為 hello.py 的腳本,內容如下: ``` #!/usr/bin/env python print("Content-type:text/html\r\n\r\n") print('<html>') print('<head>') print('<title>Hello World - First CGI Program</title>') print('</head>') print('<body>') print('<h2>Hello World! This is my first CGI program</h2>') print('</body>') print('</html>') ``` 3. 將腳本設置為可執行權限: ``` sudo chmod +x /usr/lib/cgi-bin/hello.py ``` 4. 修改Apache的配置文件,添加CGI腳本的處理規則。找到 /etc/apache2/sites-available/000-default.conf 文件,添加以下內容: ``` ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Require all granted </Directory> ``` 這個配置中,ScriptAlias 指定了CGI腳本的目錄,而 <Directory> 標簽中的內容則定義了該目錄的訪問權限和執行選項。 5. 重啟Apache服務: ``` sudo service apache2 restart ``` 6. 測試CGI腳本。在瀏覽器中輸入以下地址: ``` http://localhost/cgi-bin/hello.py ``` 如果一切正常,你將會看到一個包含 "Hello World!" 字樣的網頁。 注意,這里的腳本是用Python編寫的,所以需要在系統中安裝Python解釋器。如果你想使用其他編程語言編寫CGI腳本,需要根據具體語言的要求進行配置。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看