cgi文件怎么打開 .cgi是什么文件
cgi格式文件是“公共網(wǎng)關(guān)接口腳本”類型文件,可理解是一個可執(zhí)行的腳本??梢允褂肞ython、Perl、Ruby等語言進行創(chuàng)建。cgi腳本通常用于運行基本的Web腳本,比如在Web窗口中發(fā)送電子郵件等。
cgi文件怎么打開?
cgi格式文件它是一種常見的代碼文件,正如您所了解的代碼文件都是文本格式的,這意味著打開cgi格式文件的方法有很多。無論您使用的是Windows、Mac OS X、Linux,都可使使用系統(tǒng)里面都自帶的文本編輯器來打開及編輯cgi文件,您所需要做的只是雙擊它即可。改文件屬性需在服務(wù)器上改,不過NT和LINUX/UNIX下是有區(qū)別的。
NT文件屬性值不用更改,IMAGE文件也可以放到CGI-BIN目錄內(nèi)LINUX/UNIX是要改屬性的,IMAGE方面的文件不能放到CGI-BIN目錄內(nèi),必須在CGI-BIN目錄外另建目錄,否則圖片無法顯示。
cgi格式的文件是HTTP服務(wù)器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網(wǎng)絡(luò)服務(wù)器上。絕大多數(shù)的cgi格式的程序被用來解釋處理杰自表單的輸入信息,并在服務(wù)器產(chǎn)生相應(yīng)的處理,或?qū)⑾鄳?yīng)的信息反饋給瀏覽器。cgi程序使網(wǎng)頁具有交互功能。
cgi文件怎么打開?
可以用記事本類的文字編輯工具打開。[最好不要用DW等網(wǎng)頁編輯軟件打開,因為它們會自動添加代碼。]改文件屬性需在服務(wù)器上改,不過NT和LINUX/UNIX下是有區(qū)別的。
NT文件屬性值不用更改,IMAGE文件也可以放到CGI-BIN目錄內(nèi)LINUX/UNIX是要改屬性的,IMAGE方面的文件不能放到CGI-BIN目錄內(nèi),必須在CGI-BIN目錄外另建目錄,否則圖片無法顯示。
任務(wù)易為自由職業(yè)工作者尋找和分析任務(wù)項目,并構(gòu)建以任務(wù)為主題的社交平臺。
對一個 CGI 程序,做的工作其實只有:從環(huán)境變量(environment variables)和標準輸入(standard input)中讀取數(shù)據(jù)、處理數(shù)據(jù)、向標準輸出(standard output)輸出數(shù)據(jù)。
環(huán)境變量中存儲的叫 Request Meta-Variables,也就是諸如 QUERY_STRING、PATH_INFO 之類的東西,這些是由 Web Server 通過環(huán)境變量傳遞給 CGI 程序的,CGI 程序也是從環(huán)境變量中讀取的。
標準輸入中存放的往往是用戶通過 PUTS 或者 POST 提交的數(shù)據(jù),這些數(shù)據(jù)也是由 Web Server 傳過來的。
就比如,我們剛學 C 語言時寫的 Hello World,也可以作為一個合法的 CGI 程序。
現(xiàn)在用 CGI 的已經(jīng)很少了,因為每個 CGI 進程只處理一個請求,換句話說,每個請求都需要創(chuàng)建一個 CGI 進程處理,CGI 程序處理完畢后就退出了。
FastCGI 正是對 CGI 的改進,而且改進了不是一點點。
從總體上看,一個 FastCGI 進程可以處理若干請求(一般 FastCGI 進程是駐留著的,但不排除 IIS 之類的 Web Server 限制其空閑時間,在一段時間內(nèi)沒有請求就自動退出的可能),Web Server 或者 fpm 會控制 FastCGI 進程的數(shù)量。
細節(jié)方面,F(xiàn)astCGI 是一套協(xié)議,不再是通過簡單的環(huán)境變量、標準輸入和標準輸出來接收和傳遞數(shù)據(jù)了。一般來說,F(xiàn)astCGI 用 TCP 或者命名管道(Named Pipe)傳輸數(shù)據(jù)。
現(xiàn)在絕大多數(shù) PHP 網(wǎng)站都是在用 FastCGI 的。
因此,這個問題的答案取決于題主對 CGI 的理解。
CGI 的意思是啥?不是一種語言,也不是一種技術(shù),而是一種模式
搜索一下CGI的定義
Common Gateway Interface,簡稱CGI。在物理上是一段程序,運行在服務(wù)器上,提供同客戶端 HTML頁面的接口
“通用網(wǎng)關(guān)接口”,這就是CGI的中文意思。也沒人規(guī)定CGI一定是用PERL寫的。
換句話,只要是提供HTML的服務(wù)器端程序都可以叫CGI,APS、PHP、JSP這些都是,你用C語言寫一個可以提供HTML的服務(wù)器端EXE文件,也叫CGI。
不知道我的回答是否明確,希望能對你有所幫助。
C++課設(shè)并沒有限制一定使用MFC 所以我們組一直致力于尋找更好的方案解決界面美觀度的問題(有種更好的方法是利用c#寫界面這樣可以和程序分離開 但當時選題的時候我們并不知道這種方法)
所以選擇了WEB應(yīng)用(c/s模式) 利用C++作為服務(wù)器端語言,利用古老的CGI技術(shù)進行交互。
由于CGI的不方便性 該技術(shù)早已被ASP等技術(shù)取代 所以請大家繞行 本文的目的在于那些誤入CGI歧途的人一個出坑的道路 并且證明CGI還是能行得通的
****************************************************************************************************************
CGI的基本原理就不向大家介紹了 我們的項目利用AJAX技術(shù)向后臺請求數(shù)據(jù) 后臺利用ADO向數(shù)據(jù)庫讀寫數(shù)據(jù) 然后直接COUT給前臺
1.注意編碼問題!
首先是漢字在網(wǎng)絡(luò)傳輸時的變化 前臺向后臺傳的時候會自動轉(zhuǎn)換成UTF-8(URL)格式的編碼 后臺需要先解碼再使用這些數(shù)據(jù)
其次 數(shù)據(jù)庫與cgi程序之間有時需要轉(zhuǎn)碼
在線編碼轉(zhuǎn)換這個網(wǎng)站可能會在編碼問題上幫助你
2.動態(tài)sql
利用win32控制臺程序 向數(shù)據(jù)庫寫入數(shù)據(jù) 需要用到動態(tài)sql 這個問題需要字符串格式的統(tǒng)一 所以會花一點功夫
注意APACHE的服務(wù)器不支持ADO的方式 所以請使用IIS服務(wù)器
3.不要在cgi程序里加入例如system("pause")這類的語句 會導致cgi程序不結(jié)束 無法返回給前臺數(shù)據(jù)(響應(yīng)超時)
造成服務(wù)器內(nèi)存不足 會報w3wp.exe錯誤 這時應(yīng)該重啟服務(wù)器 刪掉相關(guān)語句
4.SESSION登錄控制 CGI可以通過環(huán)境變量設(shè)置COOKIE 但是在AJAX情況下不適用 所以請利用JAVASCRIPT設(shè)置
- cgi
cgi是一個web server與cgi程序(這里可以理解為是php解釋器)之間進行數(shù)據(jù)傳輸?shù)膮f(xié)議,保證了傳遞的是標準數(shù)據(jù)。
- php-cgi
php-cgi是php解釋器,就是上文提到的cgi程序。
- Fastcgi
Fastcgi是用來提高cgi程序(php-cgi)性能的方案/協(xié)議。
cgi程序的性能問題在哪呢?"PHP解析器會解析php.ini文件,初始化執(zhí)行環(huán)境",就是這里了。標準的CGI對每個請求都會執(zhí)行這些步驟,所以處理的時間會比較長。
Fastcgi會先啟一個master,解析配置文件,初始化執(zhí)行環(huán)境,然后再啟動多個worker。當請求過來時,master會傳遞給一個worker,然后立即可以接受下一個請求。這樣就避免了重復勞動,效率自然提高。而且當worker不夠用時,master可以根據(jù)配置預先啟動幾個worker等著;當然空閑worker太多時,也會停掉一些,這樣就提高了性能,也節(jié)約了資源。這就是Fastcgi的對進程的管理。
- php-fpm
上文提到了Fastcgi只是一個方案或者協(xié)議,那么php-fpm就是這個實現(xiàn)了Fastcgi的程序,也就是說,上文所描述的進程分配和管理是FPM來做的。官方對FPM的解釋是 Fastcgi Process Manager(Fastcgi 進程管理器) 。
PHP對并發(fā)訪問的處理
- 進程和線程
PHP從代碼級別來講不支持多線程操作,不能像Java、C#等語言一樣可以編寫多線程代碼。但多線程和并發(fā)沒有直接關(guān)系,多線程只是代碼被運行時在同一時間同時執(zhí)行多個線程任務(wù),來提高服務(wù)器CPU的利用率,提高代碼效率。但php是可以多進程執(zhí)行的,上文所述的FPM進程管理機制就是多進程單線程的,有效提高了并發(fā)訪問的響應(yīng)效率。
0 Comments.