国产麻豆精品精东影业AV网站,,,

最專業(yè)的代練平臺開發(fā)!

資訊熱點
如何使用CGI腳本生成網(wǎng)頁

發(fā)布時間:2023-5-1 分類: 行業(yè)資訊

通用網(wǎng)關(guān)接口(CGI)提供了一種以任何語言生成動態(tài)網(wǎng)站的簡便方法。

回到互聯(lián)網(wǎng)的開頭,當(dāng)我第一次創(chuàng)建我的第一個商業(yè)網(wǎng)站時,生活是如此美好。

我安裝了Apache并編寫了一些簡單的HTML頁面,其中列出了有關(guān)我的業(yè)務(wù)的一些重要信息,例如產(chǎn)品概述以及如何與我聯(lián)系。這是一個靜態(tài)網(wǎng)站,因為內(nèi)容很少改變。由于網(wǎng)站內(nèi)容很少更改,因此很容易維護。

靜態(tài)內(nèi)容

靜態(tài)內(nèi)容簡單而常見。讓我們快速瀏覽一下靜態(tài)網(wǎng)頁的一些例子。您不需要可運行的網(wǎng)站來執(zhí)行這些小型實驗,只需將這些文件放在主目錄中并使用瀏覽器打開它們即可。您看到的內(nèi)容與您通過Web服務(wù)器看到的內(nèi)容相同。

靜態(tài)網(wǎng)站需要的第一件事是index.html文件,它通常放在/var/www/html目錄中。這個文件的內(nèi)容可以很簡單,例如,它可以是一個簡短的文字,如“Hello,world”。沒有任何HTML標(biāo)記。它只會顯示文本字符串內(nèi)容。在您的主目錄中創(chuàng)建一個index.html文件并添加“hello,world”作為內(nèi)容(不需要引號)。使用以下鏈接在瀏覽器中打開此文件:

文件: ///home /<您的主目錄> /index.html

所以HTML不是必需的,但是如果你有很多需要格式化的文本,那么不使用HTML編碼的頁面結(jié)果將很難理解。

因此,下一步是通過使用一些HTML編碼來提供格式化,以使內(nèi)容更具可讀性。以下命令創(chuàng)建一個頁面,其中包含HTML靜態(tài)網(wǎng)頁所需的絕對最小標(biāo)記。您也可以使用自己喜歡的編輯器創(chuàng)建此內(nèi)容。

Echo'< h1> Hello World</h1>' > test1.html

現(xiàn)在,再次查看index.html文件,您將看到與剛才不同的東西。

當(dāng)然,您可以在實際內(nèi)容行中添加大量HTML標(biāo)記,以形成更完整和標(biāo)準(zhǔn)的網(wǎng)頁。下面顯示的是一個更完整的版本,雖然瀏覽器中會顯示相同的內(nèi)容,但它也為更標(biāo)準(zhǔn)化的網(wǎng)站奠定了基礎(chǔ)。繼續(xù)在index.html中編寫此內(nèi)容并通過瀏覽器查看。

<!DOCTYPE HTML PUBLIC' - //w3c //DD HTML 4.0 //EN'>

< HTML>

< HEAD>

< title>我的網(wǎng)頁</title>

< /頭>

<身體GT;

< h1> Hello World</h1>

< /體>

</HTML>

我使用這些技術(shù)來構(gòu)建一些靜態(tài)網(wǎng)站,但我的生活正在改變。

動態(tài)網(wǎng)頁

我找到了一份新工作,這項工作的主要任務(wù)是為動態(tài)網(wǎng)站創(chuàng)建和維護CGI(Common Gateway InterfaceM)代碼。從字面上看,動態(tài)意味著每次訪問頁面時,瀏覽器中生成的網(wǎng)頁所需的HTML都是由不同的數(shù)據(jù)生成的。數(shù)據(jù)包括用于在數(shù)據(jù)庫中進行數(shù)據(jù)查找的Web表單中的用戶輸入,并且結(jié)果數(shù)據(jù)被一些適當(dāng)?shù)腍TML包圍并顯示在所請求的瀏覽器中。但這并不需要非常復(fù)雜。

通過使用CGI腳本,您可以創(chuàng)建簡單或復(fù)雜的交互式程序,這些程序可以根據(jù)輸入,計算,服務(wù)器當(dāng)前條件等的變化生成動態(tài)頁面。有許多語言可用于編寫CGI腳本。在本文中,我將討論Perl和Bash。其他流行的CGI語言包括PHP和Python。

本文不涉及Apache或任何其他Web服務(wù)器的安裝和配置。如果您可以訪問可以試驗的Web服務(wù)器,則可以直接查看它們在瀏覽器中顯示的結(jié)果。否則,您可以在命令行上運行該程序以查看它們創(chuàng)建的HTML文本。您還可以將HTML輸出重定向到文件,并通過瀏覽器查看生成的文件。

使用Perl

Perl是一種非常流行的CGI腳本語言,具有強大的文本操作優(yōu)勢。

為了使CGI腳本可執(zhí)行,您需要將以下行添加到站點的httpd.conf中。這告訴服務(wù)器在哪里執(zhí)行CGI文件。在這個實驗中,不要擔(dān)心這個問題。

ScriptAlias/cgi-bin /'/var/www/cgi-bin /'

將以下Perl代碼添加到文件index.cgi中。在此實驗中,此文件應(yīng)放在您的主目錄中。如果使用Web服務(wù)器,則應(yīng)將文件的所有者更改為apache.apache,并將文件權(quán)限設(shè)置為755,因為無論文件位于何處,它都必須是可執(zhí)行文件。

!的/usr /斌/perl的

打印'內(nèi)容類型: text/html“;

打印'< html>< body>“;

打印'< h1> Hello World</h1>“;

打印'使用Perl< p>“;

打印'</body></html>“;

在命令行上運行此程序并查看結(jié)果,它將顯示它生成的HTML內(nèi)容

現(xiàn)在查看瀏覽器中的index.cgi文件,您看到的只是文件的內(nèi)容。瀏覽器需要將其視為CGI內(nèi)容,但Apache不知道它需要作為CGI程序運行,除非Apache配置包含上面顯示的ScriptAlias定義。如果沒有這種配置,Apache只會將文件中的數(shù)據(jù)發(fā)送到瀏覽器。如果您可以訪問Web服務(wù)器,則可以將可執(zhí)行文件放在/var/www/cgi-bin目錄中。

如果您想知道此腳本在瀏覽器中的結(jié)果,請重新運行程序并將輸出重定向到具有所需名稱的新文件。然后使用瀏覽器查看此文件,其中包含腳本生成的內(nèi)容。

上面的CGI程序仍然生成靜態(tài)內(nèi)容,因為它總是產(chǎn)生相同的輸出。將以下行添加到CGI程序“ Hello,world”在這條線后面。 Perl的系統(tǒng)命令將執(zhí)行它后面的shell命令并將結(jié)果返回給程序。此時,我們將使用free命令獲取當(dāng)前內(nèi)存使用情況。

系統(tǒng)'免費| grep Mem“;

現(xiàn)在重新運行程序并將結(jié)果重定向到文件并在瀏覽器中重新加載該文件。您將看到一個額外的行,顯示系統(tǒng)的內(nèi)存統(tǒng)計信息。多次運行程序并刷新瀏覽器,您會發(fā)現(xiàn)內(nèi)存使用情況應(yīng)該不斷變化。

使用Bash

Bash可能是CGI腳本最簡單的語言。使用Bash進行CGI編程的最大優(yōu)點是可以直接訪問所有標(biāo)準(zhǔn)GNU工具和系統(tǒng)程序。

將現(xiàn)有的index.cgi文件重命名為Perl.index.cgi,然后創(chuàng)建一個新的`index.cgi文件并添加以下內(nèi)容。請記住設(shè)置權(quán)限以使其可執(zhí)行。

!/斌/慶典

Echo'Content-type: text/html'

回聲''

Echo'< html>'

Echo'< head>'

Echo'< meta http-equiv='Content-Type'content='text/html;字符集=UTF-8' >”

Echo'< title> Hello World</title>'

Echo'</head>'

Echo'< body>'

Echo'< h1> Hello World</h1>< p>'

Echo'使用Bash< p>'

免費| grep Mem

Echo'</body>'

Echo'</html>'

退出0

在命令行上執(zhí)行此文件并查看輸出,然后再次運行它并將結(jié)果重定向到臨時結(jié)果文件。然后,刷新瀏覽器以查看其顯示的頁面。

結(jié)論

創(chuàng)建生成多種動態(tài)網(wǎng)頁的CGI程序?qū)嶋H上非常簡單。雖然這是一個非常簡單的例子,但你現(xiàn)在應(yīng)該看到一些可能性。

« 京東的毛利率是分拆京東財務(wù)的助手嗎? | 電子商務(wù)基礎(chǔ)(1):跳出率和退出率 »