當前位置:首頁 » 網頁前端 » linuxwebcgi
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

linuxwebcgi

發布時間: 2022-12-23 05:24:20

① Linux+boa+cgi+c語言,能否實現在刷新網頁後讀取文本文件的下一行數據

這個應該不好實現哦,不知道有沒有高手會,應該是web網頁技術吧

② linux的web伺服器,在cgi(c)程序中如何跳轉到某個網頁呢,感謝了

看一下w3c的<form>,<method=post>還有action

③ linux 訪問伺服器主頁只能訪問wwwroot下面嗎

Linux系統下web伺服器大多數都是Apache搭建的環境,下面是Apache環境web設置默認頁面方法:1、設置全局的web目錄默認首頁:
<pre t="code" l="php"><IfMole dir_mole>
DirectoryIndex index.php index.php4 index.php3 index.cgi index.pl index index index.shtml index.phtml default.php
</IfMole>2、針對某一web目錄設置默認首頁:
<pre t="code" l="php">Alias /aidd2008 "D:/php/web/aidd2008"
<Directory "D:/php/web/aidd2008">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex default.php
</Directory>

④ 請問linux cgi程序 處理button 和submit的區別

首先你要分清 CGI (協議) 和 CGI Application(程序/腳本) 是兩個不同的東西. 說 "...是外部應用程序(CGI程序)" 這是錯的. CGI 不是程序, 也不是一種編程語言, 而是協議, 像 SMTP, POP3, FTP 那些協議.. 現在是 1.1 的版本 (詳見: RFC3875) .

你用 php/perl/c/... 寫出來的, 只是 CGI Application, 而不是 CGI. CGI 是靠 Web 伺服器與瀏覽器互動來完成的 (所以你絕對曾經通過過 CGI ). 當中的 I ( Interface ) 指的就是 web server 的 I/O. 而這個 interface 就同時面向了你寫的 Application 和 客戶端的瀏覽器.

CGI Application (程序) --- Web 伺服器 ( CGI ) --- 瀏覽器

具體一點... 某人從客戶端對 web server 發出了個 submit form 的請求... 到了 web server 後, web server 就會將資料生成並變成 STDIN 的緩存 ( buffer ), 並等代你的 script 去 read(). 這使得你不用理會客戶端是甚麼 window, linux 還是 ios, 用的是 chrome, firefox 還是 ie 還是其他. 同樣, 你的程序運行後, 就會經由 STDOUT 送出, 而對方也不用理會你用是 Apache 還是IIS, 還是 Ngnix... 這就是 CGI 的體現

⑤ 淺談如何學習linux(強烈推薦)

一、 選擇適合自己的linux發行版
談到linux的發行版本,太多了,可能誰也不能給出一個准確的數字,但是有一點是可以肯定的,linux正在變得越來越流行, 面對這么多的Linux 發行版,打算從其他系統轉到linux系統來的初學者可能會感到困惑,即便是忠實的 Linux 用戶也沒有時間和精力去挨個嘗試,因此初學者在學習linux的之前,需要有一個明確的方向,選擇一個適合自己的系統開始學習linux至關重要!下面我們就分類介紹。
1.1 初學者入門首選-redhat系列
在學習redhat系列linux之前,首先要了解以下redhat linux各個發行版本之間的關系。
1.Red Hat Linux
Red Hat Linux是redhat最早發行的個人版本的linux, 其1.0版本於1994年11月3日發行。雖然其歷史不及其它linux發行版本悠久,但比起很多的Linux發行套件,Red Hat 的歷史悠久得多。自從Red Hat 9.0版本發布後,RedHat 公司就不再開發桌面版的 Linux發行套件,Red Hat Linux停止了開發,而將全部力量集中在伺服器版的開發上,也就是 Red Hat Enterprise Linux 版。2004年4月30日,Red Hat公司正式停止對Red Hat 9.0版本的支持,標志著Red Hat Linux的正式完結。原本的桌面版Red Hat Linux發行套件則與來自開源社區的 Fedora進行合並,成為 Fedora Core 發行版本。
目前Red Hat分為兩個系列:由Red Hat公司提供收費技術支持和更新的Red Hat Enterprise Linux,以及由社區開發的免費的Fedora Core。
2.Fedora Core
Fedora Core(縮寫為FC)被紅帽公司定位為新技術的實驗場地,許多新的技術都會在 FC 中檢驗,如果穩定的話紅帽公司則會考慮加入 Red Hat Enterprise Linux 中。
Fedora Core 1發布於2003年年末,而FC的定位便是桌面用戶。FC提供了最新的軟體包,同時,它的版本更新周期也非常短,僅6個月。由於版本更新頻繁,性能和穩定性得不到保證,因此,一般在伺服器上不推薦採用Fedora Core。
其實可以這么認為,Fedora就是Red Hat發行Red Hat企業版linux的一個實驗版本,以用戶做測試,為Red Hat企業版發布奠定基礎。
3.Red Hat Enterprise Linux
Red Hat Enterprise Linux(縮寫為RHEL,Red Hat的企業版)。Red Hat現在主要做伺服器版的linux開發,在版本上注重了性能和穩定性以及對硬體的支持。 由於企業版操作系統的開發周期較長,注重性能、穩定性和服務端軟體支持,因此版本更新相對較緩慢。
RedHat Enterprise Linux又分為4個版本 Advanced Server(AS)、ES Workstation(WS)、Desktop,它們的差別不太大,只是功能方面的差別。
4.Centos
CentOS全名為“社區企業操作系統”(Community Enterprise Operating System)
CentOS產生的背景:
Redhat發布Redhat 9。0後,不再開發redhat 10,11……,全面轉向Redhat enterprise linux(簡寫為rhel)的開發,和以往不同的是,新的redhat企業版要求用戶先購買lisence,redhat同時承諾確保產品的穩定性,安全性。rhel二進制代碼不再提供下載,而是作為redhat 服務的一部分,但源代碼依然是開放的。在這種情況下,出現了centos、whitebox、 等等一批open source的企業版本,其中以centos最為活躍。
下面講述centos是如何製作產生的:
CentOS社區將Redhat的網站上的所有源代碼下載下來,進行重新編譯。由於AS/ES/WS是商業產品,因此,必須將所有Redhat的Logo和標識改成自己的CentOS標識。比如將AS4.0原版的SRPM源碼編譯後,換上Centos社區的logo,這樣就成為了CentOS 4.0。Redhat Enterprise Linux AS4 Update1的源碼編譯後,就成為了CentOS4.1。AS4 Update2的源碼編譯後,就成為了CentOS4.2等等。CentOS就是這樣產生的。
因此,可以說CentOS就是Redhat的AS/ES/WS的免費版本,使用centos可以獲得與redhat 企業級linux一樣的功能和性能。同時centos還提供免費的長期升級和更新服務。因此, 在眾多的RHEL的克隆版本中,CentOS是很出眾很優秀的。
雖然說centos是RHEL的克隆,但並不是一模一樣,所說的克隆是具有100%的互換性。對於centos其實不盡相同,RHEL的軟體在CentOS上面不能保證100%的正常工作。
在了解了Redhat系列各個版本的差異後。其實我們就找到了為何選擇Redhat linux作為初學者入門學習的理由了。
首先:在國內,乃至是全世界的Linux用戶最熟悉、最耳聞能詳的發行版肯定就是Red Hat了。因為Red Hat是linux界的“老大”,美國Red Hat公司發布的Red Hat linux是商業上運作最成功的一個Linux發行套件,因此Red Hat公司發行的linux值得信任, Red Hat linux的功能和性能也毋庸置疑。
其次:Red hat現在擁有龐大的網路用戶群體,網路linux資源基本90%都是基於Redhat linux的,如果您在學習過程中遇到任何問題,隨便搜索網路,就有成千上萬的答案展示在你面前。
第三: Red Hat linux系列版本相互補充,相得益彰:如果你第一次接觸linux,那麼建議你先安裝Fedora Core, Fedora Core安裝簡單,對硬體支持很好,界面也很華麗,同時也可以體驗Redhat linux的最新功能;如果你對linux有一定的了解,需要深入學習,建議你使用CENTOS系統;如果你是在做linux企業級應用,建議你使用RHEL版本。
最後: redhat應用范圍廣,具有典型性和代表性,很多系統(例如紅旗redflag,中標linux,oracle發布的Enterprise Linux )都是以Red Hat linux為基準的,因而,可以說學會了Red Hat linux,就能觸類旁通,其它類似的linux系統也能很快掌握; 現在周圍學習linux的一般也都是以redhat linux為主,這樣交流方便,學習中出現問題,更容易得到解決。同時redhat linux的安裝和使用也是最簡單的,因此,基本上不會在”裝系統”上浪費過多時間。
1.2 企業級應用首選-suse linux
企業級的應用追求的是可靠性和穩定性,這就要求構建企業級應用的系統平台具有高可靠性和高穩定性。企業級linux的發行版本就是解決的這個問題。
SUSE是德國最著名的Linux發行版,在全世界范圍中也享有很高的聲譽。2003年11月4日,Novell公司對外宣布將收購SuSE。2004年1月該收購順利完成,Novell同時將SuSE正式命名為SuSE Linux。 Novell公司收購suse,加速了suse linux的發展, suse linux無論在桌面市場還是伺服器市場都更加專業化,據不完全統計,suse linux現在歐洲linux市場佔有將近80%的份額,大部分關鍵性應用都是建立在suse linux下。由於suse 進入中國時間較短,同時加上suse在中國的營銷模式短時間不能被國內接受,因此現在suse在中國的市場份額還不是很大,但是這些並不影響suse linux高可靠與穩定性的事實,隨著suse的發展,相信suse linux在中國的應用會越來越多。
1.3 游戲娛樂首選-Ubuntu Linux
說到linux桌面市場, Ubuntu Linux幾乎占據了桌面linux的半壁江山, Ubuntu Linux主打linux桌面之最,界面美觀, 簡易而不失華麗,如果想在linux下進行娛樂休閑,Ubuntu Linux絕對是首選。
Ubuntu 的安裝非常的人性化,只須按照提示一步一步進行,安裝與Windows一樣簡單!並且,Ubuntu被譽為對硬體支持最好最全面的Linux 發行版之一,許多在其他發行版上無法使用,或者在默認配置時無法使用的硬體,在Ubuntu上都能輕松搞定。因此你可以像安裝windows一樣輕松的安裝Ubuntu。盡情體驗Ubuntu linux帶來的樂趣。
1.4 linux作為伺服器是發展趨勢
在上面的章節中主要介紹了幾種最常見的linux發行版本,其實linux的發行版本還有很多很多,比較常見的還有Debian GNU/Linux, Mandriva, Gentoo,Slackware, Knoppix,MEPIS, Xandros,國產的紅旗redflag,中標linux等等,這里不再一 一介紹,其實縱觀linux的各個發行版,linux發行版本無非是朝著這兩個方面而來,一是伺服器市場,而是桌面市場。
以Ubuntu Linux為代表的linux發行版走的是桌面市場路線,雖然它們給用戶帶來很多驚喜,更新也很快,但是由於桌面市場有著windows這樣強勁的對手,linux桌面發展舉步維艱。
以redhat系列版本為代表的linux發行版現在主要面向企業級linux的伺服器市場,重點開發linux的企業版本,suse linux同樣主要力量也集中在開發企業級linux上面,其它的例如國產redhat flag,中標linux等都重點投入在了linux伺服器市場。linux兩大發布廠商現在都走了linux伺服器市場的路線,可見linux作為企業級伺服器有著巨大的發展前途,據權威部門統計,linux在伺服器市場的佔有率每年都在持續上升。
其實很多linux的應用都是針對linux伺服器的,本書的講述也是主要針對linux在伺服器下的各種應用展開的。
二、 養成良好的linux操作習慣
當你進入linux的學習之後,請不要用windows的工作方式來思考問題,因為它們之間確實有很大的不同,比如它們之間的內存管理機制,進程運行機制等都有很大不同,這些異同點將在下面章節陸續講述,因此,拋開windows那種思維,用全新的理念嘗試去挖掘linux身上特有的潛質,對初學者至關重要。
2.1 一定要習慣命令行方式
Linux是一個命令行組成的操作系統,精髓在命令行,無論圖形界面發展到什麼水平,命令行方式的操作永遠是不會變的,Linux命令有許多強大的功能:從簡單的磁碟操作、文件存取、到進行復雜的多媒體圖象和流媒體文件的製作都離不開命令行。雖然linux也有桌面系統,但是X-window也只是運行在命令行模式下的一個應用程序。
因此,可以這么說,命令是學習linux系統的基礎,學習linux,很大程度上就是學習命令,很多linux高手其實都是玩兒命令很熟的人。
也許對於剛剛從windows系統進入linux學習的初學者來說,立刻進入枯燥的命令學習,實在太難,但是你一旦學會就愛不釋手。因為它的功能實在太強大了。您未來的學習之路也將會以指數增加的方式增長。
2.2 理論結合實踐
有很多初學者都會遇到這么一個問題,說到系統的每個命令,都很熟悉,但是在系統出現故障的時候,面對出現問題的linux系統無從下手了。不知道在什麼時候用什麼命令去檢查系統,這是很多linux新手最無奈的事情了。說到底,就是學習的理論沒有很好的與系統實際操作相結合。
很多linux知識,例如每個命令的參數含義,在書本上說的很清楚,看起來也很容易理解,但是一旦組合起來使用,卻並不是那麼容易,沒有多次的動手練習,其中的技巧是無法掌握的。
人類大腦不像計算機的硬碟一樣,除非硬碟壞掉或者硬碟被格式化,否則儲存的資料將永遠而且時刻的記憶在硬碟中。而在人類記憶的曲線中,必須要不斷的重復練習才會將一件事情記得比較熟。同樣的,學習 Linux 也一樣,如果無法經常學習的話,學了後面的,忘記了前面的;還有些linux初學者也學了很多linux知識,但是由於長期不用,導致學過的東西在很短的時間內又忘記了,久而久之,失去了學習的信心。
可見,增加自己Linux 的實戰技能,只有勤於動手,勇於實踐,這也是學好linux的根本。
2.3 學會使用linux聯機幫助
各個Linux的發行版本的技術支持時間都較短,這對於Linux初學者來說往往是不夠的, 其實當安裝了一個完整的Linux系統後其中已經包含了一個強大的幫助,只是可能你還沒有發現和使用它們的技巧。例如,對於一個linux tar命令的使用,你不是很熟悉,那麼只要你在命令行輸入man tar, 就會得到tar的詳細說明和用法;
主流的linux發行版都自帶了非常詳細的幫助文檔,包括使用說明和FAQ,從系統的安裝到系統的維護,再到系統安全,針對不同層次人群的詳盡文檔。仔細閱讀文檔後60%的問題都可在這里得到解決。
2.4 學會獨立思考問題,獨立解決問題
遇到問題,首先想到的應該是如何自己去解決這個問題,解決方式很多,看書查資料,網路搜索引擎,技術論壇等等,通過這幾種方式,90%的問題都能得到解決,通過這種方式一方面鍛煉了自己獨立解決問題的能力。另一方面技術上也能得到快速提高。
如果通過如上方式實在解決不了的話,可以向人詢問,得到答案後要考慮為何這么做,然後做筆記記錄解決過程。最忌諱的方式是只要遇到問題,就去問人,雖然這樣可能會很快解決問題,但是長久下去遇到問題就會依賴別人,技術上也不會進步。
2.5 學習專業英語
如果你想深入學習Linux,一定要嘗試去看英文文檔。因為,技術性的東西寫的最好的,最全面的文檔都是英語寫的,最先發布的高新技術也都是用英語寫的。即便是非英語國家的人發布技術文檔,也都首先翻譯成英語在國際學術雜志和網路上發表。安裝一個新的軟體時先看README,再看INSTALL,然後看FAQ,最後才動手安裝,這樣遇到問題就知道為什麼。因此,學習一點專業的英語是很有必要的。
2.6 Linux學習基本步驟
到這里,我們總結一下linux的學習路線圖,給各位初學者作為參考。
初級階段:
1. 命令是必須要學的,linux常用的命令大概在80個左右,這些常用命令一定要熟練掌握。
2. 掌握linux軟體包的常用安裝方法,例如源碼安裝,rpm方式安裝等等。
3. 學習安裝設備驅動程序(比如網卡、顯卡驅動)
4. 熟悉Grub/Lilo引導程序及簡單的修復操作。
5. 熟悉Linux文件系統和目錄結構以及linux基本運行原理。
6. 掌握vi,gcc,gdb等常用編輯器,編譯器,調試器。
7. 理解shell別名、管道、I/O重定向、輸入和輸出以及shell簡單腳本編程。
8. 學習Linux環境下的網路基本組建。
高級階段:
1:嘗試閱讀linux內核源碼:
這需要具有一定的C、C++語言基礎,因為C、C++是linux/unix的核心語言,系統代碼都是C寫的。
2:嘗試編譯安裝和調試自己的linux內核:
在閱讀源碼了解了linux底層的運行原理後,完全可以編譯一個適合自己的linux系統來。
3:深入學習shell, perl,cgi等腳本語言:
這些腳本語言在linux下非常強大,它們能完成你想做的任何事情,熟練掌握這些語言,可以讓你在linux系統下游刃有餘,如魚得水。
4:構建企業級linux高可用集群系統:
linux下有很多開源免費的集群軟體,利用這些免費的集群軟體完全可以構建出與商業unix系統想媲美的集群系統來。
三、用虛擬機軟體學習linux
3.1 什麼是虛擬機軟體
虛擬機軟體可以在一台電腦上模擬出來若乾颱PC電腦,每台PC可以運行單獨的操作系統而互不幹擾,可以實現一台電腦“同時”運行幾個操作系統,還可以將這幾個操作系統連成一個網路。

圖1:安裝了3台虛擬機的windows系統

比如圖1中,是在一台電腦上安裝了Windows 2000 Server,再在Win2000 server上安裝虛擬機軟體VMWare,利用VMWare模擬出來3台PC,在這3台PC上分別運行RedHat Linux、Win2000和Solaris 9 for x86操作系統。這4個操作系統同時在一台電腦上運行,互不幹擾,並且同在一個區域網內。
聽了上面的基本介紹,你可能知道虛擬機軟體到底是做什麼用的了。那麼好,我們繼續做更深入的介紹。
目前PC上的虛擬機軟體最常用的有下述兩個:
VMWare 網址為:http://www.vmware.com
Virtual PC 網址為:http://www.connectix.com
3.2 使用虛擬機軟體的好處
1、如果要在一台電腦上安裝linux和windows系統,不用虛擬機的話,有兩個辦法:一是裝多個硬碟,每個硬碟裝一個操作系統。這個方法比較昂貴。二是在一個硬碟上裝雙系統。這個方法不夠安全,因為系統盤的MBR是操作系統的必爭之地,windows更是霸道,每次重新安裝系統都要重寫系統的MBR,這樣的話搞不好會幾個操作系統同歸於盡。而使用虛擬機軟體既省錢又安全,因此,對於新手來說,利用虛擬機學習linux簡直是再好不過了。
2、在虛擬機上安裝linux系統,你不用擔心會格式化掉自己的硬碟,你甚至可以隨意的對虛擬系統進行任何的設置和更改操作,你可以格式化虛擬系統硬碟,重新分區虛擬系統硬碟等等, 因為虛擬機是你真實系統上運行的軟體,對虛擬機系統的任何操作都是對軟體的操作。
3、利用虛擬機模擬出來的linux系統和真實的linux系統是一摸一樣的,現在各個公司專門的linux伺服器是不會讓新手隨意去動的,而供測試的linux伺服器一般又很緊缺,在自己電腦上安裝虛擬linux系統,可以隨意的學習測試,而不受任何環境影響。
3.3 虛擬機的運行環境和硬體需求
1:運行環境
VMWare可運行在Windows(WinNT以上)和Linux操作系統上。
Virtaul PC可運行在Windows(Win98以上)和MacOS上。
注:運行虛擬機軟體的操作系統叫Host OS,在虛擬機里運行的操作系統叫Guest OS。
2:硬體需求
虛擬機是將兩台以上電腦任務集成到一台電腦上來,因此對硬體要求比較高,主要是內存,硬碟和cpu;內存要足夠大,因為每個虛擬機都會佔用一定的內存資源,內存的總大小等於各個虛擬系統的總和。可喜的是,現在內存已經很便宜了,內存就不是問題了。同樣,硬碟空間也是每個虛擬機都要佔用的,cpu現在都到了多核階段,也不是問題。
3.4 虛擬機的安裝與使用
1.VMware虛擬機概述
上面章節講到,虛擬機軟體有VMWare和Virtual PC,它們各有優缺點,其中VMWare在全球佔領了80%的市場份額,因此我們也主要講述VMWare的安裝與使用。
VMware是提供一套虛擬機解決方案的軟體,主要產品分為如下3個:
(1)VMware-ESX-Server: 這個版本並不需要操作系統的支持。它本身就是一個操作系統,用來管理硬體資源。所有的系統都安裝在它的上面。帶有遠程web管理和客戶端管理功能。
(2)VMware-GSX-Server: 這個版本就要安裝在一個操作系統下了,這個操作系統叫做HOST OS。 這個HOST OS可以是Windows 2000 Server以上的Windows系統或者是Linux(官方支持列表中只有RH,SUSE,Mandrake很少的幾種),和VMware-ESX-Server一樣帶有遠程web管理和客戶端管理功能。
(3)VMware-WorkStation: 這個版本和VMware-GSX-Server版本的機構是一樣的。也是要安裝在一個操作系統下,對操作系統的要求也是Windows 2000以上或者Linux。和Vmware的區別就是沒有web遠程管理和客戶端管理。
Vmware GSX Server不支持虛擬機雙CPU,而且已經停止開發新版本, Vmware Server 是Vmware 公司決定將GSX Server免費後,重修代碼後發布的, 目前有版本更新。因此我們選擇免費的GSX Server作為講述的版本。
2.虛擬機軟體的安裝
我們在windows下安裝windows版本的VMware server,然後在VMware server上安裝linux操作系統。虛擬機軟體的安裝很簡單,只需按照windows常規方法安裝即可完成,這里不在講述。
3.創建一個虛擬機系統
虛擬機軟體安裝完畢,雙擊桌面上的 VMware Server 圖標以啟動應用程序:

4.虛擬機上linux安裝方式
在虛擬機上安裝linux系統,常用的方法有兩種:光碟機安裝和iso鏡像文件安裝。
(1) 光碟機安裝方式
在 VMware Server控制台上,雙擊右面板上的 CD-ROM 設備,然後選擇Use physical drive,location選擇host,下面下拉框選擇Auto detect即可。如圖19所示,最後,Linux系統光碟放入光碟機,單擊“Start this virtual machine”即可進入Linux安裝界面。
(2) iso文件安裝方式
在 VMware Server 控制台上,雙擊右面板上的 CD-ROM 設備,然後選擇Use ISO image,然後指定iso文件路徑,如圖20所示,最後,單擊Start this virtual machine即可進入Linux安裝界面。

⑥ Linux 中 如何解決python -m CGIHTTPServer對路徑的依賴

把CGIHTTPServer的路徑添加到path環境變數中去。

⑦ LINUX 操作系統下的CGI是什麼意思

建議:
個人認為在Linux操作系統下翻譯選擇CGI (Common Gateway Interface) 通用網關介面比較准確。

其他參考翻譯如下:
作為一個英文縮寫,該名詞有多種含義:
CGI (Common Gateway Interface) 通用網關介面
CGI(Computer Generation Image)計算機合成圖像/電腦三維動畫
CGI(Computer Graphics Interface) 計算機圖形介面標准
CGI(Cell Global Identifier) 全球小區識別碼
CGI(Compacted Graphite Iron)縮狀石墨鑄鐵
CGI(Clinton Global Initiative )柯林頓全球倡議
CGI (Clinical Global Impression)臨床療效總評量表

⑧ CGI格式文件怎麼打開

可以使用Python、Perl、Ruby等語言進行創建。CGI腳本通常用於運行基本的Web腳本,比如在Web窗口中發送電子郵件等。
CGI格式文件它是一種常見的代碼文件,正如您所了解的代碼文件都記文本格式的,這意味著打開CGI格式文件的方法有很多。無論您使用的是Windows、Mac
OS
X、Linux,都可使使用系統裡面都自帶的文本編輯器來打開及編輯CGI文件,您所需要做的只是雙擊它即可。
如果您想要深入的了解CGI文件,可以訪問阿帕奇(Apache)上的這篇文章:

⑨ 什麼是CGI程序

CGI:Common Gateway Interface
CGI代表Common Gateway Interface(通用網關界面),它使在網路伺服器下運行外部分應用程序(或網關)成為可能。CGI-BIN 目錄是存放CGI腳本的地方。這些腳本使WWW伺服器和瀏覽器能運行外部程序,而無需啟動另一個原因程序。

它是運行在Web伺服器上的一個程序,並由來自於瀏覽者的輸人觸發。CGI是在HTTP伺服器下運行外部程序(或網關)的一個介面,它能讓網路用戶訪問遠程系統上的使用類型程序,就好像他們在實際使用那些遠程計算機一樣。

CGI能夠讓瀏覽者與伺服器進行交互,如果你曾經遇到過在網路上填表或者進行搜索,就很有可能就是用的CGI。

盡管CGI易於使用,但是當大批人同時使用一個CGI應用程序是會反應較慢,網路伺服器 速度也會受到很大 影響。CGI應用程序的優點是可以獨立運行。

CGI應用程序可以由大多數的編程語言編寫,如Perl(Practical Extraction and Report Language)、C\C++、Java 和Visual Basic等。不過對於那些沒有太多編程經驗的網頁製作人來說,實在是一個不小的難題。

CGI應用程序的工作原理是這樣的:

1.瀏覽器通過HTML表單或超鏈接請求指上一個CGI應用程序的URL。

2.伺服器收發到請求。

3.伺服器執行指定所CGI應用程序。

4.CGI應用程序執行所需要的操作,通常是基於瀏覽者輸人的內容。

5.CGI應用程序把結果格式化為網路伺服器和瀏覽器能夠理解的文檔(通常是HTML網頁)。

6.網路伺服器把結果返回到瀏覽器中。

有關CGI應用程序要注意的是:

CGI應用程序運行在瀏覽器可以請求的伺服器系統上,執行時需要使用伺服器CPU時間和內存。如果有成千上萬的這種程序會同時運行,那會對伺服器系統提出極高的要求。你要慎重考慮這個問題,以防止伺服器系統崩潰。

不完善的CGI應用程序可能成為別人非法進人伺服器系統的通道,有可能導致重要的資料被刪除或外泄。

CGI應用程序主要的用途有以下幾種:

根據瀏覽者填寫的HTML表單發送定製的答復。

創建可單擊的圖像縮小圖。

創建一個瀏覽者可以搜索內容的資料庫

提供伺服器與資料庫的介面,並把結果轉換成HTML文檔。

製作動態HTML文擋。

如果一個CGI腳本可以在每台計算機上做同樣的事情;編寫腳本就會變的很容易。不幸的是,CGI腳本依賴於伺服器的操作系統,因此,對於非UNIX伺服器來說,Prl(UNIX下編寫腳本的一個常用工具)腳本毫無用處。所以,你必須定製安裝你的CGI腳本。

大多數伺服器都提供CGI-BIN目錄,但是這還不夠。因為你應該擁有自己的CGI-BIN。這樣,你就能運行自己的腳本(而不是讓自己的系統去適應已存在於系統上的腳本)。因此,你的提供商應安裝CGI-BIN,且能夠幫助你編寫腳本

二、ASP:Active Server Pages
ASP,活動伺服器頁面,就是一個編程環境,在其中,可以混合使用HTML、腳本語言以及組件來創建伺服器端功能強大的Internet應用程序。 如果你以前創建過一個站點,其中混合了HTML、腳本語言以及組件,你就可以在其中加入ASP程序代碼。通過在HTML頁面中加入腳本命令,你可以創建一個HTML用戶界面,並且,還可以通過使用組件包含一些商業邏輯規則。組件可以被腳本程序調用,也可以由其他的組件調用。
ASP的工作原理:
當在Web站點中融入ASP功能後,將發生以下事情:
1、用戶調出站點內容,默認頁面的擴展名是.asp。
2、瀏覽器從伺服器上請求ASP文件。
3、伺服器端腳本開始運行ASP。
4、ASP文件按照從上到下的順序開始處理,執行腳本命令,執行HTML頁面內容。
5、頁面信息發送到瀏覽器。
因為腳本是在伺服器端運行的,所以Web伺服器完成所有處理後,將標準的HTML頁面送往瀏覽器。這意味著,ASP只能在可以支持的伺服器上運行。讓腳本駐留在伺服器端的另外一個益處是:用戶不可能看到原始腳本程序的代碼,用戶看到的,僅僅是最終產生的HTML內容

三、PHP:Personal Home Page
PHP 是一種伺服器端的,嵌入HTML的腳本語言。PHP區別其他像客戶端Javascript的地方是它的代碼在伺服器端執行.PHP能做什麼?
最低水平,PHP可以做任何其他CGI程序所能做的事,例如收集表格數據,生成動態頁面內容,或者收發cookies.可能最強大,最有意義的特性是PHP支持大范圍的資料庫.書寫一個支持資料庫的Web 頁面是難以置信的簡單.
下面是當前支持的資料庫:
Adabas D InterBase Solid
dBase mSQL Sybase
Empress MySQL Velocis
FilePro Oracle Unix dbm
Informix PostgreSQL
PHP通過協議也支持與其他服務的"交談",像IMAP, SNMP, NNTP, POP3, 甚至是 HTTP. 你也可以打開晦澀的 網路介面和其他協議交互.
PHP的簡要歷史
1994年秋季, Rasmus Lerdorf 開始構思 PHP. 早期的非發行版本被用在他的主頁上,以追蹤誰在看他的在線簡歷. 1995年年初第一版本出台,當時PHP只被認為是個人主頁開發工具.它由一個非常單純的只能理解很少數特殊宏的分析引擎和 一些用在主頁後端通用的工具組成.如留言簿,計數器和其他一些東西.這個分析器在1995年年中被重寫並被命名為 PHP/FI 第二版. FI來自 Rasmus 寫的另外一個包, 用於解釋 html 形式的數據.他結合了個人主頁工具腳本和形式解析器,並加 上mSQL支持.這樣就產生 PHP/FI 了. PHP/FI以令人驚奇的步調成長,人們開始把自己的代碼貢獻給它.
很難給出它的硬統計表,但可以估計在1996年末,整個世界至少有15,000個網站在用PHP/FI.到1997年年中,這個 數字已經超過50,000了. 而在此時PHP的發展也發生了變化.由Rasmus自己偏愛的和幾個人開發的項目變成一個更有組織的團 體成就.Zeev Suraski和Andi Gutmans重寫了解析器.這個新的解析器成為PHP版本3的基礎.許多有用的代碼從PHP/FI 繼承到PHP3,並且很多是完全重寫的.
今天(1999年年中)不管是PHP/FI或PHP3與很多商業產品捆綁在一塊,例如C2級強度的Web伺服器和紅帽子Linux. 根據NetCraft提供的數據推斷,保守估計全世界應用PHP的網站已超過150,000個.由此看來,它比在網際網路上運行Netscape 的旗艦企業伺服器的站點還多.